linux正規表示式中各種括號的區別

2021-08-21 20:30:34 字數 739 閱讀 9140

一、小括號()、中括號、大括號的區別

1>. 小括號():匹配小括號內的字串,可以是乙個,也可以是多個,常跟「|」(或)符號搭配使用,是多選結構的

示例1:string name = "way2014";  regex:(way|zgw)  result:結果是可以匹配出way的,因為是多選結構,小括號是匹配字串的

示例2:string text = "123456789";  regex:(0-9) result:結果是什麼都匹配不到的,它只匹配字串"0-9"而不是匹配數字, [0-9]這個字元組才是匹配0-9的數字

2>.中括號:匹配字元組內的字元,比如咱們常用的[0-9a-za-z.*?!]等,在內的字元都是字元,不是元字元,比如「0-9」、「a-z」這中間的「-」就是連線符號,表示範圍的元字元,如果寫成[-!?*(]這樣的話,就是普通字元

示例1: string text = "1234567890";  regex:[0-9]  result:結果是可以匹配出字串text內的任意數字了,像上邊的【或符號「|」在字元組內就是乙個普通字元】

示例2:string text = "a|e|s|v";  regex:[a|e|s]  result:結果就是匹配字元a、e、|三個字元,這個跟(a|e|s)有區別的,區別就是(a|e|s)匹配的是a、e、s三個字元的隨意乙個,三個中的任意乙個,這是的|是元字元

3>.大括號{}:匹配次數,匹配在它之前表示式匹配出來的元素出現的次數,出現n次、匹配最少出現n次、匹配最少出現n次,最多出現m次

正規表示式 括號

用字元組和量詞可以匹配引號字串,也可以匹配 html tag,如果需要用正規表示式匹配身份證號碼,依靠字元組和量詞能不能做到呢?身份證號碼是乙個長度為15或18個字元的字串,如果是15位,則全部由數字組成,首位不能為0 如果是18位,則前17位全部是數字,末位可能是數字,也可能是x。規則非常明確,可...

各種正規表示式

1.由數字 26個英文本母或者下劃線組成的字串 0 9a za z 2.非負整數 正整數 0 d 3.正整數 0 9 1 9 0 9 4.非正整數 負整數 0 d 0 5.負整數 0 9 1 9 0 9 6.整數 d 7.非負浮點數 正浮點數 0 d d 8.正浮點數 0 9 0 9 1 9 0 9...

各種正規表示式

今天在逛貼時看到了關於正規表示式的分享,現在將其摘錄,也方便自己日後檢視 一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位...