1樓:小妥
首先這個正規表示式寫的不規範。使用c++轉義字元轉義前請在正則語句前後加上雙引號謝謝。這個正則的含義為匹配類似「1:
23:45」這樣的資料,其中第一個1可以換成0~9,第二個23可以換成00~99,第三個也可以換成00~99。目測有點像匹配時間用的,但匹配時間不應該寫的這麼簡單
2樓:匿名使用者
但這個表示式來講是可以不用的,沒有意義。
\d就可以的,就是2位以上的數 代表前面表示式的2個或以上 \d為數字所以就是2個以上的數字,而這個算式中的數字都滿足。
正規表示式 .*? 是什麼意思啊?
3樓:樂觀小山
表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.
舉例介紹:
如:懶惰模式正則:
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。
4樓:喬芝英多凡
正規表示式由一些普通字元和一些元字元(metacharacters)組成。普通字元包括大小寫的字母和數字,而元字元則具有特殊的含義,我們下面會給予解釋。
在最簡單的情況下,一個正規表示式看上去就是一個普通的查詢串。例如,正規表示式"testing"中沒有包含任何元字元,,它可以匹配"testing"和"123testing"等字串,但是不能匹配"testing"。
要想真正的用好正規表示式,正確的理解元字元是最重要的事情。下表列出了所有的元字元和對它們的一個簡短的描述。
5樓:匿名使用者
.* 很簡單,就是一個字元迴圈0次或者很多次多一個?在後面,意思是 懶惰迴圈
舉一個例子你就明白了
對於字串 aaaaaaa
a* 一下子很勤勞的把整個字串都匹配完了,結果是aaaaaaa
a*? 很懶,發現匹配字串中一個a後,就完成了匹配,就不用再繼續嘗試下去了,因此就第一次只匹配
a,然後進行第二輪匹配了,還是隻吃一個a就結束。因為他懶嘛
6樓:匿名使用者
?的一個用法1樓已經說了,匹配0次或1次。
但是?還有第二個含義,作為正則的懶惰模式。
正則有兩種模式,一種為貪婪模式(預設),另外一種為懶惰模式,以下為例:
(abc)dfe(gh)
對上面這個字串使用(.*)將會匹配整個字串,因為正則預設是儘可能多的匹配。
雖然(abc)滿足我們的表示式,但是(abc)dfe(gh)也同樣滿足,所以正則會匹配多的那個。
如果我們只想匹配(abc)和(gh)就需要用到以下的表示式
(.*?)
在重複元字元*或者+後面跟一個?,作用就是在滿足的條件下儘可能少匹配。
7樓:倒黴熊
.點 匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。
* 匹配0或多個正好在它之前的那個字元。例如正規表示式。*意味著能夠匹配任意數量的任何字元。
? 匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。
8樓:匿名使用者
就是檢查字串是否符合某個格式
看我的例子
public class judge
if(str2.matches(a))if(str3.matches(a))else}
9樓:手機使用者
.點 匹配任何單個字元。
* 匹配0或多個正好在它之前的那個字元。就是0到n次? 匹配0或1個正好在它之前的那個字元。(之前!!注意:這個元字元不是所有的軟體都支援的。)
例如113366 11(.*?)66 匹配後就是33
10樓:p為夢停留
正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。
它是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。正規表示式是一種文字模式,模式描述在搜尋文字時要匹配的一個或多個字串。
11樓:阿炎的情感小屋
正規表示式,又稱規則表示式。是電腦科學的一個概念。
正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。許多程式設計語言都支援利用正規表示式進行字串操作。例如,在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","#");//表示將連續出現三個或三個以上的數字替換成「#」。
12樓:樂觀小山
正規表示式,又稱規則表示式。(英語: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$"。
13樓:迷人的小
正規表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
正規表示式是一種可以用於模式匹配和替換的規範,一個正規表示式就是由普通的字元(例如字元a到z)以及特殊字元(元字元)組成的文字模式,它用以描述在查詢文字主體時待匹配的一個或多個字串。
正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。每一門計算機程式語言,都支援正規表示式。正規表示式能夠進行資料隱藏,資料採集,資料過濾和資料驗證。
14樓:匿名使用者
簡單的說就是,用一小段簡單的各種字元的組合,即叫做 正規表示式,去實現複雜的:
字串匹配,查詢你到你所需要的內容,以便後期提取出來你所要的內容。
這個聽起來很簡單,但是很多現實的應用中,所要處理的字串有千千萬萬種,各種複雜的字元,而且每個人的需求有無窮盡種,需要提取出的內容也是無窮多。而如果手動處理,寫普通的if else語句去一點點判斷字串是否相等,則是無法實現的。
而用正則,就可以實現如此多的,繁雜的,極度複雜的,各種需求。
更多的內容,可以看看我所總結的:
正規表示式學習心得
再舉幾個實際的例子:
notepad++正規表示式替換舉例1:一次性替換多個檔案的字尾
notepad++正規表示式替換舉例2:一次性替換多個路徑
notepad++正規表示式替換舉例3:一次性替換多個listitem為sect4
notepad++正規表示式替換舉例4:給每一行都新增addicon的字首
notepad++正規表示式替換舉例5:給book的標題和地址新增html**
15樓:匿名使用者
你前面的感嘆號是不是之前有個問號?
(?!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'。
正規表示式ddd是什麼意思,這個正規表示式什麼意思dd
先說bai通俗的結論 匹du配數。非負數,整 zhi數和小數都可以,比如 123 dao12.56這樣的 d 是匹專配一個數字 屬 0到9 d 前面多了第一個 是為了在程式中轉義第二個 這個你可以忽略 表示 1個或多個 組合起來 d 就表示多個數字,形如 12 44 6763 匹配一個小數點 d d...
正規表示式 小問題!!正規表示式,求解答
也可當否用 比如 1 8 就是表示不是1 8的所有字元。d 和 0 9 匹配數字。匹配除換行符以外的任意字元。w 匹配字母或數字或下劃線或漢字。s 匹配任意的空白符。b 匹配單詞的開始或結束。匹配字串的開始。匹配字串的結束。重複零次或更多次 如 1 d 匹配1開頭數字 包括1 重複一次或更多次 如 ...
匹配中文的的正規表示式怎麼寫,正規表示式如何匹配漢字?
你好復 bs4的語法你應該知道吧 python正則表達制式 總結 匹配字串的開始。匹配字串的結尾。b 匹配一個單詞的邊界。d 匹配任意數字。d 匹配任意非數字字元。x?匹配一個可選的 x 字元 換言之,它匹配 1 次或者.u4e00 u9fa5 正規表示式如何匹配漢字?去掉 和 試試 u4e00 u...