ruby 正則預查模式

2021-09-06 02:54:20 字數 683 閱讀 6111

零寬正回顧後發斷言  零寬正**先行斷言

/(?<=behind)     (?=ahead)/

/(?str = "str 

wait"

str1 = "str 

wert"

puts str1 =~ /str\s*\n\s*(?!wait)/

正向預查

比如:有乙個字串:

abcdefghi

/ab(c)/ 將匹配出來abc 並將c儲存到$1

/ab(?:c)/ 將匹配出來abc 並不會將c儲存到$1

/ab(?=c)/ 將匹配出來ab,沒有匹配出abc,那麼c起什麼作用呢,限定作用,直譯器找到ab後沒有馬上返回,而是再查查ab後面的是c嗎? 如果是c則才返回ab,否則返回匹配失敗。看來它預查了c,難怪命名為正向預查。

我個人覺得這個匹配有個替代方法,可以去匹配/(ab)c/,然後通過$1取出ab,我覺得牛的是下面的這個符號!

*****

?!*****

反(逆)向預查

=號變為了!號,!表示非,可見這是乙個非操作,這個是否可以解決開始的問題呢?

比如:有乙個字串:

abcdefghi

/ab(?=c)/ 將匹配出來後面緊跟著c的ab

推理:/ab(?!c)/ 將匹配出來後面緊跟著不是c的ab,在這個字串裡,將匹配不出結果。

正規表示式之正向預查和反向預查

正向預查 1.正向正預查 例如 foo bar 匹配後面帶有bar的foo 它可以匹配 foobar,abcfoobar 中的foo 但是不能匹配 fooabc 中的foo 2.正向負預查 例如 foo bar 匹配後面不帶bar的foo 它可以匹配 foo123 但是不能匹配 foobar 負向預...

高階正則用法 預查

工欲善其事必先利其器,正規表示式無疑是乙個非常強大的工具,從txt,excel,word還有眾多編輯器,還有各種開發語言都有它的蹤影.下面就說下正規表示式較為高階的預查用法 包含4個關鍵字元順序 只能同時出現乙個 預查校驗的標誌 否定 肯定 表示捕獲分組,會把每個分組裡的匹配的值儲存起來,使用 n ...

正規表示式 js 含有 正向預查和負向預查

第一次見到正規表示式的時候,感覺好難啊,要記得東西怎麼那麼多.學了好幾遍,但還是很矇圈,可能是用的少,平時用的時候也就那麼基礎需要使用,再者就是複製貼上正規表示式.那麼什麼是正規表示式呢?正規表示式就是乙個描述字元規則的物件.那為什麼會有正規表示式呢,這裡引用沫晴姐姐的一句話,就是因為計算機笨唄 沫...