亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正則表達式匹配不包含某些字符串的技巧

2020-01-20 22:11:55
字體:
來源:轉載
供稿:網友

經常我們會遇到想找出不包含某個字符串的文本,程序員最容易想到的是在正則表達式里使用,^(hede)來過濾”hede”字串,但這種寫法是錯誤的。我們可以這樣寫:[^hede],但這樣的正則表達式完全是另外一個意思,它的意思是字符串里不能包含‘h',‘e',‘d'三個但字符。那什么樣的正則表達式能過濾出不包含完整“hello”字串的信息呢?

事實上,說正則表達式里不支持逆向匹配并不是百分之百的正確。就像這個問題,我們就可以使用否定式查找來模擬出逆向匹配,從而解決我們的問題:

復制代碼 代碼如下:
^((?!hede).)*$

上面這個表達式就能過濾出不包含‘hede'字串的信息。我上面也說了,這種寫法并不是正則表達式“擅長”的用法,但它是可以這樣用的。

解釋

一個字符串是由n個字符組成的。在每個字符之前和之后,都有一個空字符。這樣,一個由n個字符組成的字符串就有n+1個空字符串。我們來看一下“ABhedeCD”這個字符串:

所有的e編號的位置都是空字符。表達式(?!hede).會往前查找,看看前面是不是沒有“hede”字串,如果沒有(是其它字符),那么.(點號)就會匹配這些其它字符。這種正則表達式的“查找”也叫做“zero-width-assertions”(零寬度斷言),因為它不會捕獲任何的字符,只是判斷。

在上面的例子里,每個空字符都會檢查其前面的字符串是否不是‘hede',如果不是,這.(點號)就是匹配捕捉這個字符。表達式(?!hede).只執行一次,所以,我們將這個表達式用括號包裹成組(group),然后用*(星號)修飾――匹配0次或多次:

復制代碼 代碼如下:
((?!hede).)*。

你可以理解,正則表達式((?!hede).)*匹配字符串"ABhedeCD"的結果false,因為在e3位置,(?!hede)匹配不合格,它之前有"hede"字符串,也就是包含了指定的字符串。

在正則表達式里, ?! 是否定式向前查找,它幫我們解決了字符串“不包含”匹配的問題。

以下是一些補充:

分享下php生成隨機數的三種方法,生成1-10之間的不重復隨機數,php生成不重復隨機數的例子,需要的朋友參考下。

在hacker news上看到regex golf,幾道很有趣的正則表達式的題,有的需要用到不匹配這種匹配,比如需要匹配不包含某個單詞的串。

開始正題之前,先來看看正則表達式的語法:

[abc] a或b或c . 任意單個字符 a? 零個或一個a
[^abc] 任意不是abc的字符 /s 空格 a* 零個或多個a
[a-z] a-z的任意字符 /S 非空格 a+ 一個或多個a
[a-zA-Z] a-z或A-Z /d 任意數字 a{n} 正好出現n次a
^ 一行開頭 /D 任意非數字 a{n,} 至少出現n次a
$ 一行末尾 /w 任意字母數字或下劃線 a{n,m} 出現n-m次a
(...) 括號用于分組 /W 任意非字母數字或下劃線 a*? 零個或多個a(非貪婪)
(a|b) a或b /b 單詞邊界 (a).../1 引用分組
(?=a) 前面有a (?!a) 前面沒有a /B 非單詞邊界

正則表達式中有(?=a)和(?!a)來表示我們是否需要匹配某個東西。

所以,有需要不匹配某樣內容時,就可以用(?!a)了。比如要匹配不含hello的字符串就可以這樣寫。

復制代碼 代碼如下:

^(?!.*hello)

這里.*用來表示hello之前可能有其他的字符,為什么還要加^呢,因為如果不加的話,可能匹配到h之后的這個位置上了。

現在就可以解決regex golf上的abba這道題了。
這道題是去匹配不含abba這種形式的單詞,比如abba,anallagmatic就不應該匹配上。

正則表達式代碼:

復制代碼 代碼如下:

^(?!.*(.)(.)/2/1)

然后利用不匹配,還可以解決prime這道題,這道題匹配有素數個x的串,先看正則。
 

復制代碼 代碼如下:

^(?!(xx+)/1+$)

(xx+)是匹配2個及2個以上的x,(xx+)/1+就是匹配重復出現2個及以上的串,所以(xx+)/1+就表示了那些非素數的串,那么素數串就是除去這些非素數串,即是以上的正則表達式了。

PS:關于正則,本站還提供了2款非常簡便實用的正則測試工具供大家使用:

JavaScript正則表達式在線測試工具:
http://tools.VeVB.COm/regex/javascript

正則表達式在線生成工具:
http://tools.VeVB.COm/regex/create_reg

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久伊人精品一区二区三区| 久久久久久亚洲精品不卡| 精品视频—区二区三区免费| 欧美黑人巨大xxx极品| 精品国内亚洲在观看18黄| 亚洲天堂网站在线观看视频| 中文字幕亚洲一区在线观看| 亚洲一区二区三区四区视频| 欧美日韩久久久久| 色老头一区二区三区在线观看| 中文字幕国产亚洲| 97**国产露脸精品国产| 国产福利视频一区| 欧美第一淫aaasss性| 亚洲精品白浆高清久久久久久| 国产精品高潮呻吟视频| 欧美精品在线极品| 久久国产精品电影| 亚洲欧美日韩中文视频| 欧美色另类天堂2015| 国产精品露脸av在线| 亚洲人成网7777777国产| 国产精品1区2区在线观看| 国模精品系列视频| 国产精品日韩欧美| 国产精品美女久久久久久免费| 69av视频在线播放| 欧美日韩美女在线观看| 国产亚洲欧洲黄色| 成人免费自拍视频| 欧美日韩精品在线播放| 国产欧美精品一区二区三区-老狼| 欧美精品在线免费| 亚洲а∨天堂久久精品9966| 2019中文字幕在线| 日韩综合视频在线观看| 国产在线观看不卡| 久久久久国产精品一区| 精品国偷自产在线视频| 亚洲毛片在线免费观看| 欧美成人免费网| 成人xvideos免费视频| 国产精品国模在线| 亚洲一区中文字幕| 亚洲精品美女网站| 欧美成人免费一级人片100| 欧美劲爆第一页| 亚洲精品在线不卡| 日韩国产在线看| 亚洲精品videossex少妇| 亚洲护士老师的毛茸茸最新章节| 亚洲国产精彩中文乱码av在线播放| 日韩精品极品在线观看播放免费视频| 性色av一区二区咪爱| 欧美午夜片欧美片在线观看| 亚洲国产精品成人一区二区| 91精品国产自产在线| 亚洲一区二区三区视频播放| 欧美天天综合色影久久精品| 久久久国产精品亚洲一区| 亚洲第一福利网| 69久久夜色精品国产69乱青草| 欧美日韩免费网站| 97超级碰碰碰| 久久精视频免费在线久久完整在线看| 国产精品wwwwww| 亚洲黄页视频免费观看| 97精品免费视频| 欧美做受高潮电影o| 97在线观看视频| 久久噜噜噜精品国产亚洲综合| 久久人人爽人人爽人人片av高请| 97免费视频在线播放| 久久精品一本久久99精品| 亚洲风情亚aⅴ在线发布| 欧美性极品xxxx做受| 日韩av综合网站| 久久久精品一区二区三区| 在线精品国产成人综合| 久久久久久久999精品视频| 日韩在线观看免费高清| 九九九热精品免费视频观看网站| 国产欧美一区二区三区久久人妖| 视频在线一区二区| 97在线视频免费观看| 精品中文字幕久久久久久| 日韩av网址在线| 97在线日本国产| 国产91对白在线播放| 欧美电影在线免费观看网站| 日韩视频免费观看| 人人澡人人澡人人看欧美| 亚洲欧美一区二区三区四区| 成人a视频在线观看| 亚洲男人天堂手机在线| 久久久久久香蕉网| 亚洲裸体xxxx| 欧美成人免费播放| 激情成人中文字幕| 中文字幕精品在线| 精品日韩中文字幕| 亚洲第一网中文字幕| 久热精品视频在线观看| 欧美性受xxxx黑人猛交| 成人性生交大片免费看小说| 久久精品中文字幕电影| 亚洲国产天堂久久综合| 欧美猛男性生活免费| 在线看日韩av| www.日韩欧美| 成人福利视频在线观看| 国产精品久久久久久久久粉嫩av| 91亚洲精品在线| 久久亚洲欧美日韩精品专区| 午夜精品三级视频福利| 欧洲日本亚洲国产区| 亚洲午夜av电影| 欧美极品少妇xxxxⅹ裸体艺术| 91在线观看免费网站| 日韩精品在线第一页| 欧日韩不卡在线视频| 亚洲国产精久久久久久久| 成人h片在线播放免费网站| 国产亚洲欧美日韩精品| 91午夜在线播放| 欧美另类高清videos| 日本19禁啪啪免费观看www| 亚洲成人aaa| 欧美激情a∨在线视频播放| 欧洲亚洲妇女av| 亚洲黄色免费三级| 成人福利视频网| 性欧美办公室18xxxxhd| 2019国产精品自在线拍国产不卡| 午夜精品蜜臀一区二区三区免费| 狠狠久久五月精品中文字幕| 欧美猛交免费看| 亚洲第一视频在线观看| 91精品国产免费久久久久久| 亚洲成av人乱码色午夜| 国产在线98福利播放视频| 一本大道久久加勒比香蕉| 伊人激情综合网| 色综合久久精品亚洲国产| 91色琪琪电影亚洲精品久久| 欧美视频在线免费| 国产成人综合亚洲| 黄网站色欧美视频| 久久综合国产精品台湾中文娱乐网| 97精品在线观看| 亚洲国产精品国自产拍av秋霞| 国产日韩中文字幕在线| 欧美激情一区二区三区成人| 亚洲成人久久一区| 琪琪亚洲精品午夜在线| 最好看的2019的中文字幕视频| 久久视频在线播放| 国产亚洲欧洲黄色| 91久久精品美女高潮| 日韩激情视频在线播放| 日韩国产在线播放| 国产成人激情视频| 91色精品视频在线| 亚洲美腿欧美激情另类|