1樓:冠夏登溪
*是一個限
來定符,用來修飾前一個字自
符或分組,限定匹配重複的數量為任意數量。
例如:正規表示式
a*可以匹配aaa
aaaaaaa
aaaaaaa等等
正規表示式
(ab)*
可以匹配
ababababab
ababababababab等等
需要注意個是,*與+不同,+要求重複數量至少為1,*則可以為0,所以字串為空也是可以匹配的。
以下是常用的限定符**:
*重複零次或更多次
+重複一次或更多次
?重複零次或一次
重複n次
重複n次或更多次
重複n到m次
望採納!
2樓:匿名使用者
*——表bai示匹配前面的字du
符0個或多個zhi
+——表示前面的字元1個或dao多個版
?——(1)放在其他字元後面權表示前面的字元可以有,也可以沒有(2)放在*、+後面表示匹配儘可能少的字元例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+?
匹配fo,
fo*? 匹配f
*+沒有這樣的用法,除非是匹配星號本身,即: \*+ 表示一個或多個星號
正規表示式中的 .*? 或 .*+ 是什麼意思? 20
3樓:四舍**入
一、*表示匹配前面的字元
0個或多個
二、+表示前面的字元1個或多個
三、?表示放在其他字元後面表示前面的字元可以有,也可以沒有,或者放在*、+後面表示匹配儘可能少的字元
例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+? 匹配fo,
fo*? 匹配f
四、*+沒有這樣的用法,除非是匹配星號本身,即: \*+ 表示一個或多個星號
4樓:完旋真向
*?是惰性匹配,就是匹配儘可能少的次數。
.*?的意思是匹配任意字元,儘可能少的次數。
比如:abaaaaabb
用a.*b去匹配,會匹配到abaaaaabb全部,應為正則預設貪婪匹配,找到第一個b之後,發現後面還有b,會一直匹配下去。
所以可以使用貪婪匹配,a.*?b
這樣的話,
只會匹配儘可能少的次數
就會匹配到
ab還有問題hi我。
5樓:徐_赫
後邊多一個?表示懶惰模式。
必須跟在*或者+後邊用
如:如果用正則匹配src中內容非懶惰模式匹配src=".*"
匹配結果是
意思是從="往後匹配,直到最後一個"匹配結束懶惰模式正則:
src=".*?"
結果:src="test.jpg"
因為匹配到第一個"就結束了一次匹配。不會繼續向後匹配。因為他懶惰嘛。
.表示除\n之外的任意字元
*表示匹配0-無窮
+表示匹配1-無窮
6樓:計興騰訾峰
.匹配任意字元1個
*表示匹配重複上一個字元0到無限次
?表示匹配前一個字元0次或一次,跟在*表示非貪婪模式預設是貪婪模式比如
<.*>會把所有字元吞下滿足前面是《後面是》就返回字串<.*?>一次吃一個字元滿足條件返回字串
7樓:樂觀小山
表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.
舉例介紹:
如:懶惰模式正則:
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。
8樓:羅美媛度子
\這是引用符,用來將這裡列出的這些元字元當作普通的字元來進行匹配。例如正規表示式\$被用來匹配美元符號,而不是行尾,類似的,正規表示式\.用來匹配點字元,而不是任何字元的萬用字元。
.匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r
t,但是不匹配root。
9樓:帛惜文謬寰
[a-za-z]\\d\\d(\\d|\\d)?
[a-za-z]第一位必須是字母;
d後面跟3個數字;
d可以是一個數字,也可以是兩個數字;
(\\d|\\d)兩個數字加一個符號"|"加3個數字?最後再跟一個字元
10樓:匿名使用者
.表示任意字元
*:修飾前面的字元,0到多
+:修飾前面的字元,1到多
11樓:許舒南靈秋
*——表示匹配前面的字元0個或多個
+——表示前面的字元1個或多個
?——(1)放在其他字元後面表示前面的字元可以有,也可以沒有(2)放在*、+後面表示匹配儘可能少的字元例如:字串fooooo,正則fo*和fo+會匹配整個字串,fo+?
匹配fo,
fo*?
匹配f*+沒有這樣的用法,除非是匹配星號本身,即:
\*+表示一個或多個星號
正規表示式 .*? 是什麼意思啊?
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樓:喬芝英多凡
正規表示式由一些普通字元和一些元字元(metacharacters)組成。普通字元包括大小寫的字母和數字,而元字元則具有特殊的含義,我們下面會給予解釋。
在最簡單的情況下,一個正規表示式看上去就是一個普通的查詢串。例如,正規表示式"testing"中沒有包含任何元字元,,它可以匹配"testing"和"123testing"等字串,但是不能匹配"testing"。
要想真正的用好正規表示式,正確的理解元字元是最重要的事情。下表列出了所有的元字元和對它們的一個簡短的描述。
14樓:匿名使用者
.* 很簡單,就是一個字元迴圈0次或者很多次多一個?在後面,意思是 懶惰迴圈
舉一個例子你就明白了
對於字串 aaaaaaa
a* 一下子很勤勞的把整個字串都匹配完了,結果是aaaaaaa
a*? 很懶,發現匹配字串中一個a後,就完成了匹配,就不用再繼續嘗試下去了,因此就第一次只匹配
a,然後進行第二輪匹配了,還是隻吃一個a就結束。因為他懶嘛
15樓:匿名使用者
?的一個用法1樓已經說了,匹配0次或1次。
但是?還有第二個含義,作為正則的懶惰模式。
正則有兩種模式,一種為貪婪模式(預設),另外一種為懶惰模式,以下為例:
(abc)dfe(gh)
對上面這個字串使用(.*)將會匹配整個字串,因為正則預設是儘可能多的匹配。
雖然(abc)滿足我們的表示式,但是(abc)dfe(gh)也同樣滿足,所以正則會匹配多的那個。
如果我們只想匹配(abc)和(gh)就需要用到以下的表示式
(.*?)
在重複元字元*或者+後面跟一個?,作用就是在滿足的條件下儘可能少匹配。
16樓:倒黴熊
.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。
* 匹配0或多個正好在它之前的那個字元。例如正規表示式。*意味著能夠匹配任意數量的任何字元。
? 匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。
17樓:匿名使用者
就是檢查字串是否符合某個格式
看我的例子
public class judge
if(str2.matches(a))if(str3.matches(a))else}
18樓:手機使用者
.點 匹配任何單個字元。
* 匹配0或多個正好在它之前的那個字元。就是0到n次? 匹配0或1個正好在它之前的那個字元。(之前!!注意:這個元字元不是所有的軟體都支援的。)
例如113366 11(.*?)66 匹配後就是33
19樓:p為夢停留
正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。
它是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的一個或多個字串。
20樓:阿炎的情感小屋
正規表示式,又稱規則表示式。是電腦科學的一個概念。
正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。許多程式設計語言都支援利用正規表示式進行字串操作。例如,在perl中就內建了一個功能強大的正規表示式引擎。
正規表示式這個概念最初是由unix中的工具軟體(例如sed和grep)普及開的。
正規表示式通常縮寫成「regex」,單數有regexp、regex,複數有regexps、regexes、regexen。
擴充套件資料
正規表示式的作用:
1、匹配
檢查字串是否符合正規表示式中的規則,有一次不匹配,則返回false。如:
string str="abc";
string reg="[a-za-z]\\d?";//次表示式表示字串的第一位只能是字母,第二位只能是數字或沒有boolean flag=str.matches(reg);//返回結果為true。
2、切割
所謂切割,即是按一定的規則將字串分割成多個子字串,如:
string str="zhangsan,lishi,wangwu"。
string reg=",";//表示以逗號作為切割符。
string arr=str.split(reg);//返回結果為。
3、替換
即將字串中符合規則的字元替換成指定字元,如:
string str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。
str.replaceall("\\d","#");//表示將連續出現三個或三個以上的數字替換成「#」。
易語言正規表示式的中的正規表示式文字怎麼取的
易語言不支援逆向斷言,所以你只能使用分組。取group 2 即可,具體易語言怎麼取正則的分組請自己參考易語言的api 上面文字,中兩個人對話 共同開始結束特徵 開始 結束 換行 給出表示式 就這樣,詳細的加q 版本2.支援庫 duregex 程式集 視窗程zhi序集1 子程式 按鈕1 被單擊 區域性...
正規表示式問題,正規表示式問題(需要通用)
這樣不知道 是不是你想要的 首先你給的xml是不規範的。硬要匹配的話,可以試試下面的 你要的字串在group 1 中 性和閏年等問題.對於日期的有效範圍,不同的應用場景會有所不同。msdn中定義的datetime物件的有效範圍是 0001 01 01 00 00 00到9999 12 31 23 5...
正規表示式ddd 」是什麼意思
先說通俗的結論 匹配數。非負數,整數和小數都可以,比如123 12.56這樣的 d 是匹配一個數字 0到9 d前面多了第一個 是為了在程式中轉義第二個 這個你可以忽略 表示1個或多個 組合起來 d 就表示多個數字,形如 12 44 6763 匹配一個小數點 d d 就表示小數,形如12.334 0....