好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 正則表達式不包含屬性

正則表達式不包含屬性

熱門標簽:電銷機器人公司簡介 湖南企業智能外呼系統供應商 高德地圖標注短信簽約 錫林郭勒盟地圖標注位置 RO地圖標注app 百音電話機器人 自制電銷機器人 知名的電話機器人 福州工作銷售電話機器人
找出所有img標簽的,沒有帶說明屬性alt的標簽:

正則:img(?![^>]*?alt[^>]*?>).*?>
例子:img src="" alt=""> img src="" >  img src="" title="">  img src="" id="">  img src=""  title="" alt="">


擴展,如果要找沒有帶title屬性的a應該是:

正則:a(?![^>]*?title[^>]*?>).*?>
例子:a src="" alt=""> a src="" >  a src="" title="">  a src="" id="">  a src=""  title="" alt="">
用正則表達式找出不包含連續字符串abc的單詞

[^abc]表示不包含a、b、c中任意字符, 我想實現不包含字符串abc應該如何寫表達式?

就我自己而言,這個問題最簡單的解決方法是使用編程語言的配合,找出那些包含abc的,剩下的就是不包含的了——懶人的風格。但我寫的是教程,讀者未必都有編程的基礎,有些只是使用一些工具從txt文檔中抽取出一些信息,所以要回答還是必須完全通過正則表達式來完成。

于是打開了RegexTester,開始試驗,先是試了使用((?'test'abc)|.)*(?(test)(?!))(含意是:查找abc,或任意的字符,如果找到了abc,就把它存入命名為test的組里,到最后檢查test組里是否有內容,如果有就匹配失敗,相關說明見教程),結果是"abc","aabc","abcd","aa"都能通過測試,看來是到最后測試到test組存在后又回溯了,此解決方案不可行。

然后又試了(.(?!abc))*(找出所有后面不是abc的字符),結果是"abc","abcd"通過測試,"aabc"則只截取了后面的"abc",顯然不行。

那加強條件試試:((?!abc).(?!abc))*(找出所有前面和后面都不是abc的字符),結果是所有包含abc的字符串都只截取了里面的"abc",不包含abc的則直接通過。

現在看來有點戲了,但是怎么把那些內部包含abc的字符串過濾掉呢?這個問題換句話說也就是怎么匹配整體而不是部分呢?現在需要明確用戶的需求了:如果用戶想要找的是單詞,那就在表達式的兩端加上\b,如果要找的是行,就加上^和$。由于用戶的問題沒有明確說明,我就當作是單詞吧。

于是等到了這樣的表達式:\b((?!abc).(?!abc))*\b,經過測試,這個表達式能匹配所有不包含abc的單詞,以及單詞abc。

怎么排除單詞abc?經過一番思考,最后我認為判斷單詞是否以a開頭的方式最為方便:\b(a(?!bc)|[^a](?!abc))((?!abc).(?!abc))*\b(要么以后面不是bc的a開頭,要么不以a開頭,除了開頭后面所有的字符必須前面和后面都不是abc)。經過測試,完全滿足要求,Bingo!

使用正則表達式查找不包含連續字符串abc的單詞,最終結果:\b(a(?!bc)|[^a](?!abc))((?!abc).(?!abc))*\b
----------------
更新:根據maple的評論,更簡潔的作法是:\b((?!abc)\w)+\b

正則表達式-不包含某個字符串

在使用正則表達式的場合,常常有這種需求,就是匹配一個不包含某個子串的子符串。比如說,我要從“eabcdfgh”得到"cd"之前的子串。有些人可能會寫:

([^cd]*)

這種寫法是徹底錯誤的,因為[]中的是集合,也就是說,[^cd]表示不等于c或者d,而不是cd。下面的程序中沒有cd,但eab還是被匹配出來了。

復制代碼 代碼如下:

String s = "([^cd]*)"; 
Match m = Regex.Match("eabcfgh", s); 
MessageBox.Show(m.Value);//eab 
MessageBox.Show(m.Groups[1].Value);//eab

上面這種寫法是錯的比較離譜的,正常青年一般都可以避免這種錯誤。在特殊情況下,正則表達式可以這么寫,而且效率是比較高的。

([/s/S]*cd)

先說明下/s/S是表示匹配任何字符。所謂特殊情況,就是我知道這個字符串中必有cd的存在。假如,我的要求是匹配不包含cd的部分(為了描述方便,只匹配cd之前的部分),也就是說,當cd不存在時,應該把整個字符串都取出來。

復制代碼 代碼如下:

String s = "((.(?!cd))*.)"; 
//String s = "([/s/S]*cd)"; 
Match m = Regex.Match("eabcdfgh", s); 
MessageBox.Show(m.Value);//eab 
MessageBox.Show(m.Groups[1].Value);//eab

這種寫法終于符合要求了。不過值得一提的是,相較前一種而言,它的效率比較低。
回顧一下相關的語法:
(?:子表達式)         定義非捕獲組。

復制代碼 代碼如下:

//定義非捕獲組 
String s = "e(?:ab)(.*)"; 
Match m = Regex.Match("eabcd", s); 
MessageBox.Show(m.Value);//eabcd 
MessageBox.Show(m.Groups[1].Value);//cd

ab是被匹配的,但是它所在的組沒有被捕獲,Group[1]是cd

(?=子表達式)       零寬度正預測先行斷言。

復制代碼 代碼如下:

//零寬度正預測先行斷言 
//String s = "b(cd|de)(.*)"; 
String s = "b(?=cd|de)(.*)"; 
Match m = Regex.Match("eabcdfg", s); 
MessageBox.Show(m.Value); 
MessageBox.Show(m.Groups[1].Value);//區別 cd  cdfg

這種寫法和注釋掉的寫法是有區別的,區別就是“零寬度”,這種寫法會被捕獲,也就是不占一個Group。

(?!子表達式)       零寬度負預測先行斷言。

!表示非,就是不包含,同樣是零寬度,不會被捕獲。

(?=子表達式)    零寬度正回顧后發斷言。

例:(?=19)\d{2}\b

“1851 1999 1950 1905 2003”中的“99”、“50”和“05”

(?!子表達式)     零寬度負回顧后發斷言。

例:(?!19)\d{2}\b

“1851 1999 1950 1905 2003”中的“51”和“03”

您可能感興趣的文章:
  • 正則表達式匹配不包含某些字符串的技巧
  • PHP正則提取不包含指定網址的圖片地址的例子
  • 用正則刪除不包含某個字符串的行的代碼
  • 用正則表達式表示不包含2950的字符串
  • php 正則 不包含某字符串的正則表達式
  • 正則表達式不包含align該怎么寫
  • 使用正則表達式找出不包含特定字符串的條目

標簽:西寧 河北 吉林 秦皇島 玉林 昆明 茂名 怒江

巨人網絡通訊聲明:本文標題《正則表達式不包含屬性》,本文關鍵詞  正則,表達式,不,包含,屬性,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式不包含屬性》相關的同類信息!
  • 本頁收集關于正則表達式不包含屬性的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男人洗澡互打飞视频| 国产精品18久久久久久AV小说| 日本撒尿高清偷拍| 国产美女厕所嘘嘘嘘嘘| 国产精品18久久久久久不卡| 痴女扩张宫交脱垂重口小说| 三级自拍视频| 国产精品久久久久久一级毛片许晴| 色妞www精品一级视频| 国产欧美综合一区二区三区| 飞华两性小说| 日日摸夜夜| 久久亚洲精品国产四区 | 大尺度做爰啪啪床戏水声| 三p被狂躁到高潮失禁电影| 射婷婷| 好大用力深一点免费| 快穿名器叠加H肉辣文| 乱Lun合集1第40部分阅读作者 | 亚洲图片一区二区| 白丝jk爆??乳?| 久久久久久综合一区中文字幕| 欧美人禽性恔视频免费看| 日日爱网站| 大学生一级一片第一次野外| 亚洲成a人不卡在线观看| 91在线无码精品秘?国产软件 | 3p两男一女h文| 涩涩高清无乱码在线观看| 疯狂欧美大伦交乱| 又黄又刺激的叫床骚话| 女人下面突然一紧一紧的| 久久综合九色综合欧洲色| x8ⅹ8女性性爽兔免费视频| 又爽又湿又黄无遮挡免费网站| bt天堂国产亚洲欧美在线| 99精品99| 欧美高大丰满sexvideo| 阳春市| 999影院成人在线影院| 越南女兵一级A片免费看|