在正規表示式中什麼意思,正規表示式中的 或 是什麼意思?

2021-05-02 04:02:05 字數 5963 閱讀 5010

1樓:浪漫的不浪漫的

「?:」非獲取匹配,匹配冒號後的內容但不獲取匹配結果,不進行儲存供以後使用。

單獨的「?」:匹配前面的子表示式零次或一次。

當「?」緊跟在任何乙個其他限制符(*,+,?,,,)後面時,匹配模式是非貪婪的。非貪婪模式盡可能少地匹配所搜尋的字串,而預設的貪婪模式則盡可能多地匹配所搜尋的字串。

擴充套件資料正規表示式是對字串(包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為「元字元」))操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的乙個或多個字串。

2樓:清秋汐月

在正規表示式中,加問號代表懶惰模式。

【拓展】

正規表示式貪婪匹配模式,對於初學者,往往也很容易出錯。有時候需要匹配乙個段**內容,發現匹配與想要不一致。發現原來,跟貪婪模式有關係。如下,我們看下例子:

什麼是貪婪模式

字串有: 「

」,我們想匹配內容,正規表示式如下:

1、h3開頭與結尾,」」 都作為普通字元

2、中間可以出現任意字元,個數可以是0個或者多個,正規表示式可以用:.* ,「.」代表任意字元,預設模式不匹配換行,」*」 重複前面字元0個或者多個。

3、最終我們考慮結果將是:」」 ,也可以是:」」 {}代表,重複前面指定個數字元,以下用到是,正規表示式除錯工具截圖,軟體可以看:正規表示式工具推薦(學習工具、測試工具)

2種結果都一樣,這是我們不希望得到的,我們希望從左邊開始,第乙個出現,就開始匹配。以上這種模式,是貪婪模式,也是正規表示式預設以這個方法匹配。表示重複字元,操作符,預設都是貪婪模式,如:.

*,.+,.,.

都會匹配最大長度字元。正規表示式元字元,量詞預設首先最大匹配字串,這些量詞有:+,*,?

, 。一開始匹配,就直接匹配到最長字串。

什麼是懶惰模式

既然上面幾種,表示字元重複個數,元字元預設都是貪婪模式。如果,我們需要最小長度匹配,也就是懶惰模式,怎麼樣寫正規表示式呢?其實,正規表示式裡面通用方法是,在表示重複字元元字元,後面加多乙個」?

」字元即可。上面正規表示式可以寫成:」」,或者」」 都可以。

懶惰模式,就匹配到我們需要字串了。

總結:正規表示式,表示字串重複個數元字元,'?,+,*,{}' 預設都會選擇貪婪模式,會最大長度匹配字串,而要切換到懶惰模式,就只是在該元字元,後面加多乙個」?

」 即可切換到非貪婪模式(懶惰模式)。

3樓:

(?:x)在正則中表示所匹配的子組x不作為結果輸出

正常情況(x)中的x會被作為新增的乙個組序號輸出,比如(a)(b),a的序號1,b的序號2

如果(?:a)(b),a將沒有序號不輸出,b的序號為1

4樓:如也乙個兩個

「?:」是不想**獲的時候使用可以提高程式執行速度(?:x)在正則中表示所匹配的子組x不作為結果輸出正常情況(x)中的x會被作為新增的乙個組序號輸出,比如(a)(b),a的序號1,b的序號2

如果(?:a)(b),a將沒有序號不輸出,b的序號為1

5樓:匿名使用者

?: 是 不想**獲的時候使用 可以提高程式執行速度比如 ([a-z][0-9])+

這個正規表示式裡 ( ) 裡面的內容**獲了, 反向引用的時候可以用上 。

一般正則替換的時候用的多 像ubb**

但是 如果寫成 (?:[a-z][0-9])+跟上面 正規表示式 整體匹配是一樣的 就是 不會捕獲 ( )裡內容了。

也就是不能使用 反向引用

如果還是不太理解, 那就先了解一下 反向引用吧。

6樓:匿名使用者

?:表示不儲存括號裡的內容

7樓:劉漫天飛舞

平常我在小區裡玩。在學校裡上課。在家裡吃飯。在圖書館裡看書。

8樓:湖南為什麼

條件表示式

如c=(a>b)?a:b

如果滿足a>b則c=a

如果不滿足a>b則c=b

正規表示式中的 .*? 或 .*+ 是什麼意思? 20

9樓:四捨**入

一、*表示匹配前面的字元

0個或多個

二、+表示前面的字元1個或多個

三、?表示放在其他字元後面表示前面的字元可以有,也可以沒有,或者放在*、+後面表示匹配盡可能少的字元

例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+? 匹配fo,

fo*? 匹配f

四、*+沒有這樣的用法,除非是匹配星號本身,即: \*+ 表示乙個或多個星號

10樓:完旋真向

*?是惰性匹配,就是匹配盡可能少的次數。

.*?的意思是匹配任意字元,盡可能少的次數。

比如:abaaaaabb

用a.*b去匹配,會匹配到abaaaaabb全部,應為正則預設貪婪匹配,找到第乙個b之後,發現後面還有b,會一直匹配下去。

所以可以使用貪婪匹配,a.*?b

這樣的話,

只會匹配盡可能少的次數

就會匹配到

ab還有問題hi我。

11樓:徐_赫

後邊多乙個?表示懶惰模式。

必須跟在*或者+後邊用

如:如果用正則匹配src中內容非懶惰模式匹配src=".*"

匹配結果是

意思是從="往後匹配,直到最後乙個"匹配結束懶惰模式正則:

src=".*?"

結果:src="test.jpg"

因為匹配到第乙個"就結束了一次匹配。不會繼續向後匹配。因為他懶惰嘛。

.表示除\n之外的任意字元

*表示匹配0-無窮

+表示匹配1-無窮

12樓:計興騰訾峰

.匹配任意字元1個

*表示匹配重複上乙個字元0到無限次

?表示匹配前乙個字元0次或一次,跟在*表示非貪婪模式預設是貪婪模式比如

<.*>會把所有字元吞下滿足前面是《後面是》就返回字串<.*?>一次吃乙個字元滿足條件返回字串

13樓:樂觀小山

表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.

舉例介紹:

如:懶惰模式正則:

src=".*?"

結果:src="test.jpg"

擴充套件資料正規表示式特殊字元及其含義:

1、\cx

匹配由x指明的控制字元。例如, \cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 『c』 字元。

2、\f

匹配乙個換頁符。等價於 \x0c 和 \cl。

3、\n

匹配乙個換行符。等價於 \x0a 和 \cj。

4、\r

匹配乙個回車符。等價於 \x0d 和 \cm。

5、\s

匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。

6、\s

匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。

7、\t

匹配乙個製表符。等價於 \x09 和 \ci。

8、\v

匹配乙個垂直製表符。等價於 \x0b 和 \ck。

14樓:羅美媛度子

\這是引用符,用來將這裡列出的這些元字元當作普通的字元來進行匹配。例如正規表示式\$被用來匹配美元符號,而不是行尾,類似的,正規表示式\.用來匹配點字元,而不是任何字元的萬用字元。

.匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r

t,但是不匹配root。

15樓:帛惜文謬寰

[a-za-z]\\d\\d(\\d|\\d)?

[a-za-z]第一位必須是字母;

d後面跟3個數字;

d可以是乙個數字,也可以是兩個數字;

(\\d|\\d)兩個數字加乙個符號"|"加3個數字?最後再跟乙個字元

16樓:匿名使用者

.表示任意字元

*:修飾前面的字元,0到多

+:修飾前面的字元,1到多

17樓:許舒南靈秋

*——表示匹配前面的字元0個或多個

+——表示前面的字元1個或多個

?——(1)放在其他字元後面表示前面的字元可以有,也可以沒有(2)放在*、+後面表示匹配盡可能少的字元例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+?

匹配fo,

fo*?

匹配f*+沒有這樣的用法,除非是匹配星號本身,即:

\*+表示乙個或多個星號

正規表示式中的 *?或 *+ 是什麼意思

18樓:冠夏登溪

*是乙個限

來定符,用來修飾前乙個字自

符或分組,限定匹配重複的數量為任意數量。

例如:正規表示式

a*可以匹配aaa

aaaaaaa

aaaaaaa等等

正規表示式

(ab)*

可以匹配

ababababab

ababababababab等等

需要注意個是,*與+不同,+要求重複數量至少為1,*則可以為0,所以字串為空也是可以匹配的。

以下是常用的限定符**:

*重複零次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多次

重複n到m次

望採納!

19樓:匿名使用者

*——表bai示匹配前面的字du

符0個或多個zhi

+——表示前面的字元1個或dao多個版

?——(1)放在其他字元後面權表示前面的字元可以有,也可以沒有(2)放在*、+後面表示匹配盡可能少的字元例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+?

匹配fo,

fo*? 匹配f

*+沒有這樣的用法,除非是匹配星號本身,即: \*+ 表示乙個或多個星號

正規表示式 .*? 是什麼意思啊?

20樓:樂觀小山

表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.

舉例介紹:

如:懶惰模式正則:

src=".*?"

結果:src="test.jpg"

擴充套件資料正規表示式特殊字元及其含義:

1、\cx

匹配由x指明的控制字元。例如, \cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 『c』 字元。

2、\f

匹配乙個換頁符。等價於 \x0c 和 \cl。

3、\n

匹配乙個換行符。等價於 \x0a 和 \cj。

4、\r

匹配乙個回車符。等價於 \x0d 和 \cm。

5、\s

匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。

6、\s

匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。

7、\t

匹配乙個製表符。等價於 \x09 和 \ci。

8、\v

匹配乙個垂直製表符。等價於 \x0b 和 \ck。

C正規表示式匹配無結果,c 正規表示式在正則測試器中正常,但是在vs中卻沒有資料,這是為什麼?

正則 s hash u s 0 3 0 9 size 你在正規表示式測試工具裡面測試沒有問題截個圖出來看看 源字串和你寫正則一起 你那些 s 是想匹配什麼?從你上面寫的原始碼部分來看,那裡應該是個換行,也就是 r n 也有可能只有其中乙個,根據系統自己判斷,其他的部分應該沒有問題。你想要什麼?把結果...

正規表示式,匹配中文問題,正規表示式匹配中文,網上有兩種 u4e00 u9fa5 和 x00 xff ,但貌似不只匹配中文。

換個軟體吧。大大,誰說正則不能支援中文。當然,你也可以用unicode來代替。不過,還要去查漢字的unicode,太累了。只能跟你說,很多支援正則的軟體都能支援中文。正則支援 中文 regextester.exe 很多地方有的下 the regulator 這兩個都是比較經典的軟體 正規表示式匹配中...

易語言正規表示式,易語言中怎麼用正規表示式

版本 2 支援抄庫 regex 支援庫 spec 區域性變數 正則,正規表示式 區域性變數 搜尋,搜尋結果,0 區域性變數 文字,文字型 常量1 就是被搜尋的文字 小明 文字 常量1 正則.建立 搜尋 正則.搜尋全部 文字 除錯輸出 搜尋 1 取子匹配文字 文字,1,s s 就可以了 用這個 d d...