正規表示式如何匹配出最短字串,正規表示式如何匹配除某些字串以外的所有字元

時間 2021-06-11 15:12:52

1樓:

當正規表示式中包含能接受重複的限定符時,通常的行為是(在使整個表示式能得到匹配的前提下)匹配儘可能多的字元。考慮這個表示式:a.

*b,它將會匹配最長的以a開始,以b結束的字串。如果用它來搜尋aabab的話,它會匹配整個字串aabab。這被稱為貪婪匹配。

有時,我們更需要懶惰匹配,也就是匹配儘可能少的字元。前面給出的限定符都可以被轉化為懶惰匹配模式,只要在它後面加上一個問號?。這樣.

*?就意味著匹配任意數量的重複,但是在能使整個匹配成功的前提下使用最少的重複。現在看看懶惰版的例子吧:

a.*?b匹配最短的,以a開始,以b結束的字串。如果把它應用於aabab的話,它會匹配aab(第一到第三個字元)和ab(第四到第五個字元)。

為什麼第一個匹配是aab(第一到第三個字元)而不是ab(第二到第三個字元)?簡單地說,因為正規表示式有另一條規則,比懶惰/貪婪規則的優先順序更高:最先開始的匹配擁有最高的優先權——the match that begins earliest wins。

2樓:

1、匹配(*********x)

\([^()]*\)

2、匹配(*********x)*********)就可以用你寫的

\(.*\)

正規表示式如何匹配除某些字串以外的所有字元

3樓:

你對正規表示式的理解可能存在誤區,用[ ]括起來的是匹配任意字元,根據你的要求,應該是想要匹配所有以abc開始,以.zip結束的字元,寫法應該是這樣(abc).+(\.

zip)。

在方括號[ ]中,除了^,-,一切特殊符號全部失效,你的[^abc.*?.zip]這個正規表示式,實際意思是,匹配除了a,b,c,.,*,?,z,i,p之外的一切字元

正規表示式如何匹配除了以某幾個字元開頭的字串?

4樓:ccc橙子陳

^表示bai文字開始;du $表示文字結束;

^a.*b$ 匹配a開頭,

zhib結束的dao文字

正規表示式,又稱規則回表示式。答

在**中常簡寫為regex、regexp或re),電腦科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文字

正規表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為"元字元"))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。

正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的一個或多個字串。

5樓:

(?!abc|def)^.*$

除了abc、def開頭的字串

正規表示式如何匹配excel檔案

對應的正規表示式 xls xl xla xlt xlm xlc xlw 如果匹配上面的表示式,則檔案是excel檔案 我在kettle 用 xl?判斷是否是excel檔案的正規表示式 xls.驗證這樣形式的 xls?或者 xlsx?匹配所有.xls結尾的檔案或.xlsx的檔案 對應的正規表示式 xl...

正規表示式中如何替換自身,正規表示式如何替換並修改自身的部分內容?

正則式 d 加圓括號表示分組並作為 反向索引 d表示一位數字 替換為 1a 1表示引用第1個組,對每個數字,替換為它本身跟上字母a 我用的emeditor,不同環境正則式語法也有差別。d可用 0 9 替代 1在有些環境中是 1 計名 其實,1 和 2 之間有 b 2 和 3 之間 b 123 s b...

如何用正規表示式匹配(和)符號,以及如何匹配

彤孤蘭 源字串形如 select k df38178f a228 4dda b25c dfd7a2b9a618 s x send recv 其中連字元 開頭的如 k s send 等為控制符 非連字元開頭的如 select df38178f a228 4dda b25c dfd7a2b9a618 為...