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

2021-06-10 13:35:32 字數 1402 閱讀 2639

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開頭的字串

正規表示式如何完成匹配某個字串但是不包含指定字串

bea exception 正規表示式 如何匹配包含指定字元的字串 1 hi.b 2 hi.3 hh ii 有問題繼續交流啊 正規表示式 如何判斷不包含某些子字串呢?1.常見函式 baistrstr str,abc 2.正則 du匹配 zhipreg match abc is str 但是要匹配一個...

正規表示式 匹配指定字元後面的字元

如果前面是固定的 姓名 的話,試試 姓名 d 正規表示式,又稱規則表示式,是電腦科學的一個概念,這個概念最初是由unix中的工具軟體普及開的。正則表通常被用來檢索 替換那些符合某個模式 規則 的文字。正則引擎主要分為dfa nfa兩大類。許多程式設計語言都支援利用正規表示式進行字串操作。例如,在pe...

關於正規表示式問號的幾種匹配,正規表示式匹配問號 不是問號的用法

pattern 匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用 或 字元 來組合一個模式的各個部分是很有用。例如,industr y ies 就是一個比 industry industries 更簡略的表示式。pattern 負向預查,在任何不匹配...