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

2021-03-19 18:37:03 字數 6325 閱讀 4865

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....