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 好像做不到吧。但網上有說可以的 匹配中文字...