1. 程式人生 > >正則表示式(括號)、[中括號]、{大括號}的區別小結

正則表示式(括號)、[中括號]、{大括號}的區別小結

正則表示式的() [] {}有不同的意思。

() 是為了提取匹配的字串。表示式中有幾個()就有幾個相應的匹配字串。

(\s*)表示連續空格的字串。

[]是定義匹配的字元範圍。比如 [a-zA-Z0-9] 表示相應位置的字元要匹配英文字元和數字。[\s*]表示空格或者*號。

{}一般用來表示匹配的長度,比如 \s{3} 表示匹配三個空格,\s{1,3}表示匹配一到三個空格。

(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意後面有 *,可以為空)[0-9]+ 匹配數字(注意後面有 +,不可以為空){1-9} 寫法錯誤。

[0-9]{0,9} 表示長度為 0 到 9 的數字字串。

————————————————————————————————————————————————————————————

圓括號()是組,主要應用在限制多選結構的範圍/分組/捕獲文字/環視/特殊模式處理
示例:
1、(abc|bcd|cde),表示這一段是abc、bcd、cde三者之一均可,順序也必須一致
2、(abc)?,表示這一組要麼一起出現,要麼不出現,出現則按此組內的順序出現
3、(?:abc)表示找到這樣abc這樣一組,但不記錄,不儲存到$變數中,否則可以通過$x取第幾個括號所匹配到的項,比如:(aaa)(bbb)(ccc)(?:ddd)(eee),可以用$1獲取(aaa)匹配到的內容,而$3則獲取到了(ccc)匹配到的內容,而$4則獲取的是由(eee)匹配到的內容,因為前一對括號沒有儲存變數
4、a(?=bbb) 順序環視 表示a後面必須緊跟3個連續的b
5、(?i:xxxx) 不區分大小寫 (?s:.*) 跨行匹配.可以匹配回車符

方括號是單個匹配,字符集/排除字符集/命名字符集
示例:
1、[0-3],表示找到這一個位置上的字元只能是0到3這四個數字,與(abc|bcd|cde)的作用比較類似,但圓括號可以匹配多個連續的字元,而一對方括號只能匹配單個字元
2、[^0-3],表示找到這一個位置上的字元只能是除了0到3之外的所有字元
3、[:digit:] 0-9 [:alnum:] A-Za-z0-9

——————————————————————————————————————————————————————————————————————

()和[]有本質的區別
()內的內容表示的是一個子表示式,()本身不匹配任何東西,也不限制匹配任何東西,只是把括號內的內容作為同一個表示式來處理,例如(ab){1,3},就表示ab一起連續出現最少1次,最多3次。如果沒有括號的話,ab{1,3},就表示a,後面緊跟的b出現最少1次,最多3次。另外,括號在匹配模式中也很重要。這個就不延伸了,LZ有興趣可以自己查查


[]表示匹配的字元在[]中,並且只能出現一次,並且特殊字元寫在[]會被當成普通字元來匹配。例如[(a)],會匹配(、a、)、這三個字元。
所以() [] 無論是作用還是表示的含義,都有天壤之別,沒什麼聯絡

————————————————————————————————————————————————————————————————

相關推薦

php使用表示式提取字串括號括號括號括號的字串

</pre><p>PHP使用正則表示式提取字串中尖括號<>、小括號()、中括號[]、大括號{}中的字元示例,需要的朋友可以參考下</p><p>

java表示式去掉所有括號【】

2018年11月17日 13:02:33 進擊的流氓 閱讀數:1 標籤: 正則表示式

Java使用表示式(-|\\+)?(\\d+)*.?\\d+匹配正數負數浮點數

1簡介 可以使用正則表示式對字串進行匹配,比如對使用者輸入的字串進行有效性驗證。 2Java正則表示式 正則表示式定義了字串的模式。 正則表示式可以用來搜尋、編輯或處理文字。 正則表示式並不僅限於某一種

C# 表示式判斷是否是數字是否含有中文是否是數字字母組合

//判斷輸入是否為中文 public static bool HasChinese(string content) { //判斷是不是中文 strin

[表示式(一)] 必須包含數字字母的校驗

一般密碼要求必須包含數字、字母,6-10位,校驗的正則表示式如下 ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,10}$ 分開來註釋一下: ^ 匹配一行的開頭位置

常用表示式大全(匹配中文匹配html)

常用正則表示式大全!(例如:匹配中文、匹配html)  匹配中文字元的正則表示式: [u4e00-u9fa5]     評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了   匹配雙位元組字元(包括漢字在內):[^x00-xff]   評註:可以用來計算字串的長度(

java表示式詳解(匹配切割和替換)

正則表示式:符合一定規則的表示式。作用:用於專門操作字串。特點:用於一些特定的符號來表示一些程式碼操作,這樣就簡化書寫。所以學習正則表示式,就是在學習一些特殊符號的使用。好處:可以簡化對字串的複雜操作。弊端:符號定義越多,正則越長,閱讀性越差。 具體操作功能: 1,匹配:

jquery表示式驗證(手機號身份證號中文名稱)

數字判斷方法:isNaN()函式 test()方法 判斷字串中是否匹配到正則表示式內容,返回的是boolean值 ( true / false ) // 驗證中文名稱 function isChinaName(name) { var pattern

QT 用表示式從tableView篩選出某一日期範圍內的資料

QDate date1,date2; date1=ui->dateEdit_2->date();//提取開始時間 date2=ui->dateEdit_3->date();//提取結束時間 data_filter->

如何用表示式獲得頁面的指定資料?

我想得到一個table裡的每一行資料,格式如下: <tr> <td align='center' class='orang'>07098</td> <td width='35' align='center' class='yellow'>3<

java表示式去除html所有的標籤和特殊HTML字元

關於java正則表示式去除html中所有的標籤和特殊HTML字元,結合我所做的專案總結的經驗: 總共分為三種:第一種適用於適用短的文章,將文章用正則表示式的方式拼接到程式碼中,有些繁瑣,其實不太實用。第二種就是直接將文件引入,進行更改,但是有一個小缺點,就是文件中的格式可能是utf-8格式的

請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。 在本題,匹配是指字串的所有字元匹配整個模式。

題目描述 請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式中的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均

C#表示式入門(

一、忽略匹配優先模式 *? 重複任意次,但儘可能少重複 +? 重複1次或更多次,但儘可能少重複 ?? 重複0次或1次,但儘可能少重複 {n,m}? 重複n到m次,但儘可能少重複 {n,}? 重複n次以上,但儘可能少重複   【例二】在滿足匹配時

C#表示式提取HTMLIMG標籤的SRC地址

原文:http://blog.csdn.net/smeller/article/details/7108502 一般來說一個 HTML 文件有很多標籤,比如“<html>”、“<body>”、“<table>”等,想把文件中的 img 標籤提取出來並不

表示式在python的應用

 正則表示式簡介 正則表示式為高階的文字模式匹配、抽取、或者文字形式的搜尋與替換提供了基礎。正則表示式(regex)是由字元和特殊符號組成的字串,它們描述了模式的重複或者表述多個字元(就是描述了一個可以識別各種字串的模式),於是正則表示式能夠按照某種模式匹配一系列有相似特

php表示式 剔除字串的除了漢字的字元(只保留漢字)

1)utf-8的編碼格式,匹配中文程式碼如下: <?php     $str = "utf-8下匹配出中文字串";     $preg = "/[\x{4e00}-\x{9fa5}]+/u";     if(preg_match_all($preg,$str,$mat

表示式】Python3表示式

介紹 \quad\quad正則表示式(Regular Expression)是一種文字模式,包括普通字元(例如,a 到 z 之間的字母)和特殊字元(稱為"元字元")。 \quad\quad正則表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串(一個特殊的

java利用表示式提取字串的整數和小數部分

最近開發遇到一個新的東西,就是前端傳過來一個字串,需要將裡面的數字提取出來,倒騰了一天,最後還是沒有倒騰出來,最後還是借鑑大佬的方法。記錄一下。 首先是前端傳來的字串“小明通過掃碼向你付款100000.566元”其中暱稱和金額不是固定的,其他是固定的。 於是便考慮使用“通過掃碼向你付

asp表示式使用過程踩的坑

以下程式碼是我除錯過程中的程式碼,有以下問題: 1、matches(0).SubMatches(0)是匹配模式中有()的時候來獲取結果。 2、如果匹配模式中無()則直接用Match.value獲取匹配結果 3、將以下程式碼copy到test.asp的檔案中時,在除錯的時