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

2021-03-08 07:40:45 字數 5380 閱讀 8047

1樓:匿名使用者

點代表的是任意字元。

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

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

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

他大多用在:.*?a

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

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

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

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

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

2樓:p為夢停留

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

它是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的一個或多個字串。

3樓:阿炎的情感小屋

正規表示式,又稱規則表示式。是電腦科學的一個概念。

正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。許多程式設計語言都支援利用正規表示式進行字串操作。例如,在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","#");//表示將連續出現三個或三個以上的數字替換成「#」。

4樓:樂觀小山

正規表示式,又稱規則表示式。(英語:regular expression,在**中常簡寫為regex、regexp或re),電腦科學的一個概念。

正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。

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

正規表示式這個概念最初是由unix中的工具軟體(例如sed和grep)普及開的。正規表示式通常縮寫成「regex」,單數有regexp、regex,複數有regexps、regexes、regexen。

擴充套件資料

正規表示式應用——例項應用

1.驗證使用者名稱和密碼:("^[a-za-z]\w$")正確格式:"[a-z][a-z]_[0-9]"組成,並且第一個字必須為字母6~16位;

2.驗證**號碼:("^(\d-)\d$")正確格式:***/***x-******x/******xx;

3.驗證手機號碼:"^1[3|4|5|7|8][0-9]$";

4.驗證身份證號(15位):"\d[[0-9],0-9xx]",(18位):"\d(\d|x|x)";

6.只能輸入由數字和26個英文字母組成的字串:("^[a-za-z0-9]+$");

7.整數或者小數:^[0-9]+([.][0-9]+)$

8.只能輸入數字:"^[0-9]*$"。

9.只能輸入n位的數字:"^\d$"。

5樓:迷人的小

正規表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。

正規表示式是一種可以用於模式匹配和替換的規範,一個正規表示式就是由普通的字元(例如字元a到z)以及特殊字元(元字元)組成的文字模式,它用以描述在查詢文字主體時待匹配的一個或多個字串。

正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。每一門計算機程式語言,都支援正規表示式。正規表示式能夠進行資料隱藏,資料採集,資料過濾和資料驗證。

6樓:匿名使用者

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

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

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

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

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

正規表示式學習心得

再舉幾個實際的例子:

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

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

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

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

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

7樓:匿名使用者

你前面的感嘆號是不是之前有個問號?

(?!pattern)

負向預查,

在任何不匹配 pattern

的字串開始處匹配查詢字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如'windows (?!95|98|nt|2000)' 能匹配

"windows 3.1" 中的 "windows",但不能匹配 "windows 2000" 中的

"windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

(?:pattern)

匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用

"或" 字元 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries'

更簡略的表示式。

?當該字元緊跟在任何一個其他限制符 (*, +, ?, , , )

後面時,匹配模式是非貪婪的。非貪婪模式儘可能少的匹配所搜尋的字串,而預設的貪婪模式則儘可能多的匹配所搜尋的字串。例如,對於字串 "oooo",'o+?'

將匹配單個 "o",而 'o+' 將匹配所有 'o'。

8樓:匿名使用者

如果原來沒有使用過正規表示式,那麼可能對這個術語和概念會不太熟悉。不過,它們並不是您想象的那麼新奇。

請回想一下在硬碟上是如何查詢檔案的。您肯定會使用 ? 和 * 字元來幫助查詢您正尋找的檔案。?

字元匹配檔名中的單個字元,而 * 則匹配一個或多個字元。一個如 'data?.dat' 的模式可以找到下述檔案:

data1.dat

data2.dat

datax.dat

datan.dat

如果使用 * 字元代替 ? 字元,則將擴大找到的檔案數量。'data*.dat' 可以匹配下述所有檔名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataxyz.dat

儘管這種搜尋檔案的方法肯定很有用,但也十分有限。? 和 * 萬用字元的有限能力可以使你對正規表示式能做什麼有一個概念,不過正規表示式的功能更強大,也更靈活。

正規表示式中的 .*? 或 .*+ 是什麼意思? 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-無窮

求正規表示式分割aa ee得到,求正規表示式 分割 aa bb cc dd ee 得到 aa , bb , cc , dd , ee

str.match w g str.match w u4e00 u9fa5 g 支援中文 aa bb 標準的表示 包含aa,且包含bb 的模式,對aa和bb的出現順序無要求,但這是偵測,不能 獲,要想捕獲內容,就需要把邊界定義清楚。在你沒有說清楚的時候,暫以 包含aa和bb的一行文字 為捕獲內容來理...

關於正規表示式問號的幾種匹配,正規表示式匹配問號 不是問號的用法

pattern 匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用 或 字元 來組合一個模式的各個部分是很有用。例如,industr y ies 就是一個比 industry industries 更簡略的表示式。pattern 負向預查,在任何不匹配...

正規表示式特殊符號 冒號,如何使用正規表示式提取冒號後面的內容

與其輸bai入之後再判斷,不如du限制輸入,當前前zhi提是這dao些特殊符號是無內效的 如果你需 容要這些特殊符號只是想暫時去除,應該是用for來一個一個找,效率高點,而不是if txt.indexof 0 txt.indexof 0 寫一大串的條件 你直接定義一個chararray,加入 之類的...