正規表示式中代表什麼,正規表示式裡面 和 有什麼區別?

2022-02-13 02:22:29 字數 5901 閱讀 8049

1樓:匿名使用者

點 是任意字元

* 是取 0 至 無限長度

問號 是非貪婪模式。

何在一起就是 取盡量少的任意字元,一般不會這麼單獨寫,他大多用在:

.*?a

就是取前面任意長度的字元,到底乙個 a 出現,匹配如下q@wer_qwerqweraljlkjlkjlkj得到:q@wer_qwerqwera 這部分,如果匹配不到後面的 a 字元,則匹配為空。

2樓:夢裡尋你我他

.是除了\n的任意字元

*是取之前字元的0個或者n個

?是去之前字元的0個或者1個;也可以解釋為非貪婪模式這三個組合在一起的含義就是 :0個或者任意個不是\n的任意字元(非貪婪模式,發現乙個就立即匹配結束)

3樓:匿名使用者

點代表的是任意字元。

* 代表的是取 0 至 無限長度

問號代表的是非貪婪模式。

三個鏈結在一起是取盡量少的任意字元,一般不會這麼單獨寫。

他大多用在:.*?a

就是取前面任意長度的字元,到底乙個 a 出現,匹配如下q@wer_qwerqweraljlkjlkjlkj,

得到:q@wer_qwerqwera  這部分,如果匹配不到後面的 a 字元,則匹配為空。

正規表示式,又稱規則表示式,是電腦科學的乙個概念,這個概念最初是由unix中的工具軟體普及開的。正則表通常被用來檢索、替換那些符合某個模式(規則)的文字。正則引擎主要分為dfa、nfa兩大類。

許多程式語言都支援利用正規表示式進行字串操作。例如,在perl中就內建了乙個功能強大的正規表示式引擎。

正規表示式的「鼻祖」或許可一直追溯到科學家對人類神經系統工作原理的早期研究。通常縮寫成「regex」,單數有regexp、regex,複數有regexps、regexes、regexen。

正規表示式裡面 .* 和 .*? 有什麼區別?

4樓:

表示式 .* 就是單個字元匹配任意次,即貪婪匹配。

表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.

\s    匹配任何空白非列印字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。注意 unicode 正規表示式會匹配全形空格符。

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

*限定符是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的後面加上乙個?就可以實現非貪婪或最小匹配。

比如:使用/<.*>/匹配的結果為:h1>chapter 1 - 介紹正規表示式使用/<.*?>/匹配結果為:h1。

拓展知識

正規表示式特殊字元及其含義

5樓:匿名使用者

\s匹配任意的空白符(包括空格,製表符(tab),換行符,中文全形空格)

\s則是任意不是空白符的字元

?涉及到貪婪模式

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

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

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

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

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

6樓:匿名使用者

\w 等價於 [a-za-z0-9_]

\w 等價於 [^a-za-z0-9_],就是排除了\w的情況,也就是說它們表示的意思相反

7樓:匿名使用者

簡單的說就是,用一小段簡單的各種字元的組合,即叫做 正規表示式,去實現複雜的:

字串匹配,查詢你到你所需要的內容,以便後期提取出來你所要的內容。

這個聽起來很簡單,但是很多現實的應用中,所要處理的字串有千千萬萬種,各種複雜的字元,而且每個人的需求有無窮盡種,需要提取出的內容也是無窮多。而如果手動處理,寫普通的if else語句去一點點判斷字串是否相等,則是無法實現的。

而用正則,就可以實現如此多的,繁雜的,極度複雜的,各種需求。

更多的內容,可以看看我所總結的:

正規表示式學習心得

再舉幾個實際的例子:

notepad++正規表示式替換舉例1:一次性替換多個檔案的字尾

notepad++正規表示式替換舉例2:一次性替換多個路徑

notepad++正規表示式替換舉例3:一次性替換多個listitem為sect4

notepad++正規表示式替換舉例4:給每一行都新增addicon的字首

notepad++正規表示式替換舉例5:給book的標題和位址新增html**

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

8樓:四捨**入

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

0個或多個

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

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

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

fo*? 匹配f

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

9樓:完旋真向

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

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

比如:abaaaaabb

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

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

這樣的話,

只會匹配盡可能少的次數

就會匹配到

ab還有問題hi我。

10樓:徐_赫

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

必須跟在*或者+後邊用

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

匹配結果是

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

src=".*?"

結果:src="test.jpg"

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

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

*表示匹配0-無窮

+表示匹配1-無窮

11樓:計興騰訾峰

.匹配任意字元1個

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

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

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

12樓:樂觀小山

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

舉例介紹:

如:懶惰模式正則:

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。

13樓:羅美媛度子

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

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

t,但是不匹配root。

14樓:帛惜文謬寰

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

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

d後面跟3個數字;

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

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

15樓:匿名使用者

.表示任意字元

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

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

16樓:許舒南靈秋

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

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

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

匹配fo,

fo*?

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

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

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

17樓:樂觀小山

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

舉例介紹:

如:懶惰模式正則:

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。

18樓:喬芝英多凡

正規表示式由一些普通字元和一些元字元(metacharacters)組成。普通字元包括大小寫的字母和數字,而元字元則具有特殊的含義,我們下面會給予解釋。

在最簡單的情況下,乙個正規表示式看上去就是乙個普通的查詢串。例如,正規表示式"testing"中沒有包含任何元字元,,它可以匹配"testing"和"123testing"等字串,但是不能匹配"testing"。

要想真正的用好正規表示式,正確的理解元字元是最重要的事情。下表列出了所有的元字元和對它們的乙個簡短的描述。

正規表示式只能輸入字母數字漢字,正規表示式驗證允許輸入漢字字母數字的正則,有的發乙份昂。

a za z0 9 u4e00 u9fa5 其實 a za z0 9 可以用 w來代替,只是 w還可以匹配乙個下劃線,如果必須要求只有數字和字母那還是用 a za z0 9 這個好了 u4e00 u9fa5 匹配中文字元 1 9 d 匹配正整數 a za z 匹配由26個英文本母組成的字串 a z ...

正規表示式如何匹配漢字,如何用正規表示式校驗漢字

去掉 和 試試 u4e00 u9fa5 u數字,在perl pcre中要改為 x x 按.的標準,w本來就是可以匹配 漢字,字母,數字,下劃線。的所以一般 w可以滿足需求了。如果需要排除字母數字的話,可以這樣 a za z0 9 w 這樣寫估計效率不高 所以一般來說還是直接匹配指定的unicode碼...

易語言正規表示式文字查詢,易語言正規表示式模糊查詢文字

你 上的 正則表達是錯誤的 yh price 和 num iid 兩個欄位是相鄰的 所以 能匹配到,而 後面的title欄位 與他們不相鄰,所以匹配不到。建議更改為 yh price d num iid d title 易語言正規表示式模糊查詢文字 150 好像做不到吧。但網上有說可以的 匹配中文字...