go語言正則匹配src go 正則

正則匹配一個文本中的所有src

$reg="/src[=\"\'\s]+([^\"\']+)[\"\']/i";

為遂平等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及遂平網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、網(wǎng)站設(shè)計、遂平網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

$str="";

if(preg_match_all($reg,$str,$m)){

for($i=0;$icount ( $m [1] );$i++){

echo $m[1][$i];

}

}

golang 正則 regexp包使用

先介紹幾種常用的方法:

1、使用MatchString函數(shù)或Match函數(shù)

regexp.MatchString(pattern string, s string) pattern為正則表達(dá)式,s為需要校驗的字符串

regexp.Match(pattern string, b []byte) pattern為正則表達(dá)式,s為需要校驗的字符串

它們的作用都是匹配,區(qū)別在于參數(shù)為字符串和切片

實例如下:

2、使用 Compile函數(shù)或MustCompile函數(shù)

它們的區(qū)別是Compile返回兩個參數(shù) Regexp,error類型,而MustCompile只返回 Regexp類型

它們的作用是將正則表達(dá)式進(jìn)行編譯,返回優(yōu)化的 Regexp 結(jié)構(gòu)體,該結(jié)構(gòu)體有需多方法。

實例如下:

3、查找正則匹配字串( 注:函數(shù)名包含string的所傳參數(shù)為string 其他的均為[]byte 帶All是所有)

查找正則匹配的字符串位置( 注:函數(shù)名包含string的所傳參數(shù)為string 其他的均為[]byte 帶All是所有)

4、替換

正則替換

按原文替換

函數(shù)處理替換源字串

5、Regexp結(jié)構(gòu)體中一些常用的方法

正則表達(dá)式匹配img中src的值

"img\b[^]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?imgUrl[^\s\t\r\n""']*)[^]*?/?[\s\t\r\n]*"

上面的引號中的內(nèi)容就是正則表達(dá)式,用 C# 的正則表達(dá)式匹配 HTML 中的圖片地址:

public static string[] GetHtmlImageUrlList(string sHtmlText)

{

// 定義正則表達(dá)式用來匹配 img 標(biāo)簽

Regex regImg = new Regex(@"img\b[^]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?imgUrl[^\s\t\r\n""']*)[^]*?/?[\s\t\r\n]*", RegexOptions.IgnoreCase);

// 搜索匹配的字符串

MatchCollection matches = regImg.Matches(sHtmlText);

int i = 0;

string[] sUrlList = new string[matches.Count];

// 取得匹配項列表

foreach (Match match in matches)

sUrlList[i++] = match.Groups["imgUrl"].Value;

return sUrlList;

}

該方法返回一個字符串?dāng)?shù)組,存放的就是從 sHtmlText 字符串中取得的圖片地址列表。

golang 正則正則表達(dá)式反向查詢

基本上所有的語言都有正則表達(dá)式,golang也不例外。golang原生使用regexp包進(jìn)行正則表達(dá)式的匹配。正常情況下滿足基礎(chǔ)的查詢功能。但是,golang為了正則表達(dá)式的效率一直堅持O(n)的搜索復(fù)雜度,所以有些高級特性將無法滿足。

正則表達(dá)式可以通過\1的形式反向查詢之前匹配的數(shù)據(jù),但是原生自帶的regxp是不支持該特性。所以只能使用第三方庫來支持。

]*[^/].(?:jpg|bmp|gif)(?:\"|\')'>正則表達(dá)式語句解釋src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\')

src表示以src開頭,

[^]*表示不含有‘’字符的子串

[^/].表示任意一個非'/'字符后面跟一個任意字符(個人覺得這里寫的不對,‘.'前要加\轉(zhuǎn)義才表示’.')

(?:jpg|bmp|gif)表示后面要跟上jpg或bmp或gif,?:表示“非獲取匹配”(這里非必須)

(?:\"|\')表示后面跟雙引號或單引號,\符號是轉(zhuǎn)義字符。

合起來的意思就是:選取以src開頭,到j(luò)pg或bmp或gif并后跟引號結(jié)尾,中間不能有''字符的字符串。

參考:

標(biāo)題名稱:go語言正則匹配src go 正則
網(wǎng)頁路徑:http://muchs.cn/article8/hgiiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站策劃企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)動態(tài)網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作