$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];
}
}
先介紹幾種常用的方法:
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)體中一些常用的方法
"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 字符串中取得的圖片地址列表。
基本上所有的語言都有正則表達(dá)式,golang也不例外。golang原生使用regexp包進(jìn)行正則表達(dá)式的匹配。正常情況下滿足基礎(chǔ)的查詢功能。但是,golang為了正則表達(dá)式的效率一直堅持O(n)的搜索復(fù)雜度,所以有些高級特性將無法滿足。
正則表達(dá)式可以通過\1的形式反向查詢之前匹配的數(shù)據(jù),但是原生自帶的regxp是不支持該特性。所以只能使用第三方庫來支持。
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)