欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 正則表達式教程之元字符的使用詳解

正則表達式教程之元字符的使用詳解

熱門標簽:西藏智能外呼系統(tǒng)代理商 呼叫系統(tǒng)外呼只能兩次 貴港公司如何申請400電話 地圖標注教學點 甘肅醫(yī)療外呼系統(tǒng)排名 梅縣地圖標注 ai電話機器人搭建 400電話辦理電話辦理 外呼系統(tǒng)無呼出路由是什么原因

本文實例講述了正則表達式教程之元字符的使用。分享給大家供大家參考,具體如下:

注:在所有例子中正則表達式匹配結果包含在源文本中的之間,有的例子會使用Java來實現(xiàn),如果是java本身正則表達式的用法,會在相應的地方說明。所有java例子都在JDK1.6.0_13下測試通過。

一、對特殊字符進行轉義

元字符是一些在正則表達式里有著特殊含義的字符。因為元字符在正則表達式里有著特殊的含義,所以這些字符就無法用來代表它們本身。在元字符前面加上一個反斜杠就可以對它進行轉義,這樣得到的轉義序列將匹配那個字符本身而不是它特殊的元字符含義。如,如果想要匹配[和],就必須對它進行轉義:


對元字符轉義需要用到斜杠\字符,這就意味著\字符本向也是一個元字符,要匹配\字符本身,必須轉義成\\。如匹配windows文件路徑。

二、匹配空白字符

元字符大致可以分為兩種:一種是用來匹配文本的(如.),另一種是正則表達式的語法所要求的(如[和])。

在進行正則表達式搜索的時候,我們經常會遇到需要對原始文本中里的非打印空白字符進行匹配的情況。比如說,我們可能需要把所有的制表符找出來,或者我們需要把換行符找出來,這類字符很難被直接輸入到一個正則表達式里,這時我們可以使用如下列出的特殊元字符來輸入它們:

\b 回退(并刪除)一個字符(Backspace鍵)
\f 換頁符
\n 換行符
\r 回車符
\t 制表符(Tab鍵)
\v 垂直制表符

來看一個例子,把文件中的空白行去掉:

文本:

8 5 4 1 6 3  2 7 9
7 6 2 9 5 8  3 4 1
9 3 1 4 2 7  8 5 6

6 9 3 8 7 5  1 2 4
5 1 8 3 4 2  6 9 7
2 4 7 6 1 9  5 3 8

3 26  7 8 4 9 1 5
4 8 9 5 3 1  7 6 2
1 7 5 2 9 6  4 8 3

正則表達式:\r\n\r\n

分析:\r\n匹配一個回車+換行組合,windows操作系統(tǒng)中把它作為文本行的結束標簽。使用正則表達式\r\n\r\n進行的搜索將匹配兩個連續(xù)的行尾標簽,而這正好是空白行。

注意:Unix和Linux操作系統(tǒng)中只使用一個換行符來結束一個文本行,換句話說,在Unix或Linux系統(tǒng)中匹配空白行只使用\n\n即可,不需要加上\r。同時適用于windows和Unix/Linux的正則表達式應該包括一個可先的\r和一個必須匹配的\n,即\r?\n\r?\n,這將會在后面的文章中講到。

Java代碼如下:

public static void matchBlankLine() throws Exception{
  BufferedReader br = new BufferedReader(new FileReader(new File("E:/九宮格.txt")));
  StringBuilder sb = new StringBuilder();
  char[] cbuf = new char[1024];
  int len = 0;
  while(br.ready()  (len = br.read(cbuf)) > 0){
    br.read(cbuf);
    sb.append(cbuf, 0, len);
  }
  String reg = "\r\n\r\n";
  System.out.println("原內容:\n" + sb.toString());
  System.out.println("處理后:-----------------------------");
  System.out.println(sb.toString().replaceAll(reg, "\r\n"));
}

運行結果如下:

原內容:

8 5 4 1 6 3 2 7 9
7 6 2 9 5 8 3 4 1
9 3 1 4 2 7 8 5 6

6 9 3 8 7 5 1 2 4
5 1 8 3 4 2 6 9 7
2 4 7 6 1 9 5 3 8

3 2 6 7 8 4 9 1 5
4 8 9 5 3 1 7 6 2
1 7 5 2 9 6 4 8 3

 
處理后:-----------------------------

8 5 4 1 6 3 2 7 9
7 6 2 9 5 8 3 4 1
9 3 1 4 2 7 8 5 6
6 9 3 8 7 5 1 2 4
5 1 8 3 4 2 6 9 7
2 4 7 6 1 9 5 3 8
3 2 6 7 8 4 9 1 5
4 8 9 5 3 1 7 6 2
1 7 5 2 9 6 4 8 3

三、匹配特定的字符類別

字符集合(匹配多個字符中的某一個)是最常見的匹配形式,而一些常用的字符集合可以用特殊元字符來代替。這些元字符匹配的是某一類別的字符(類元字符),類元字符并不是必不可少的,因為可以通過逐一列舉有關字符或通過定義一個字符區(qū)間來匹配某一類字符,但是使用它們構造出來的正則表達式簡明易懂,在實際應用中很常用。

1、匹配數(shù)字與非數(shù)字

\d 任何一個數(shù)字,等價于[0-9]或[0123456789]
\D 任何一個非數(shù)字,等價于[^0-9]或[^0123456789]

2、匹配字母和數(shù)字與非字母和數(shù)字

字母(A-Z不區(qū)分大小寫)、數(shù)字、下劃線是一種常用的字符集合,可用如下類元字符:

\w 任何一個字母(不區(qū)分大小寫)、數(shù)字、下劃線,等價于[0-9a-zA-Z_]
\W 任何一個非字母數(shù)字和下劃線,等價于[^0-9a-zA-Z_]

3、匹配空白字符與非空白字符

\s 任何一下空白字符,等價于[\f\n\r\t\v]
\S 任何一下空白字符,等價于[^\f\n\r\t\v]

注意:退格元字符\b沒有不在\s的范圍之內。

4、匹配十六進制或八進制數(shù)值

十六進制:用前綴\x來給出,如:\x0A對應于ASCII字符10(換行符),其效果等價于\n。
八進制:用前綴\0來給出,數(shù)值本身可以是兩位或三位數(shù)字,如:\011對應于ASCII字符9(制表符),其效果等價于\t。

四、使用POSIX字符類

POSIX字符類是很多正則表達式實現(xiàn)都支持的一種簡寫形式。Java也支持它,但JavaScript不支持。POSIX字符如下所示:

[:alnum:] 任何一個字母或數(shù)字,等價于[a-zA-Z0-9]
[:alpha:] 任何一個字母,等價于[a-zA-Z]
[:blank:] 空格或制表符,等價于[\t]
[:cntrl:] ASCII控制字符(ASCII 0到31,再加上ASCII 127)
[:digit:] 任何一個數(shù)字,等價于[0-9]
[:graph:] 任何一個可打印字符,但不包括空格
[:lower:] 任何一個小寫字母,等價于[a-z]
[:print:] 任何一個可打印字符
[:punct:] 既不屬于[:alnum:]和[:cntrl:]的任何一個字符
[:space:] 任何一個空白字符,包括空格,等價于[^\f\n\r\t\v]
[:upper:] 任何一個大寫字母,等價于[A-Z]
[:xdigit:] 任何一個十六進制數(shù)字,等價于[a-fA-F0-9]

POSIX字符和之前見過的元字符不太一樣,我們來看一個前面利用正則表達式來匹配網頁中的顏色的例子:

文本:span style="background-color:#3636FF;height:30px;width:60px;">測試/span>

正則表達式:#[[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]]

結果:span style="background-color:【#3636FF】;height:30px;width:60px;">測試/span>

注意:這里使用的模式以[[開頭、以]]結束,這是使用POSIX字符類所必須的,POSIX字符必須括在[:和:]之間,外層[和]字符用來定義一個集合,內層的[和]字符是POSIX字符類本身的組成部分。

在java中的POSIX字符表示有所不同,不是包括在[:和:]之間,而是以\p開頭,包括在{和}之間,且大小寫有區(qū)別,同時增加了\p{ASCII},如下所示:

\p{Alnum} 字母數(shù)字字符:[\p{Alpha}\p{Digit}]
\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]
\p{ASCII} 所有 ASCII:[\x00-\x7F]
\p{Blank} 空格或制表符:[ \t]
\p{Cntrl} 控制字符:[\x00-\x1F\x7F]
\p{Digit} 十進制數(shù)字:[0-9]
\p{Graph} 可見字符:[\p{Alnum}\p{Punct}]
\p{Lower} 小寫字母字符:[a-z]
\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Punct} 標點符號:!"#$%'()*+,-./:;=>?@[\]^_`{|}~
\p{Space} 空白字符:[ \t\n\x0B\f\r]
\p{Upper} 大寫字母字符:[A-Z]
\p{XDigit} 十六進制數(shù)字:[0-9a-fA-F]

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述對大家正則表達式學習有所幫助。

您可能感興趣的文章:
  • 正則表達式\d元字符(相對于數(shù)字0-9)
  • 正則表達式\w元字符使用介紹
  • 正則表達式(regex)入門、元字符(特殊字符)學習與提高
  • 正則表達式常用元字符整理小結
  • PHP正則表達式基本函數(shù) 修飾符 元字符和需轉義字符說明
  • JavaScript學習總結之正則的元字符和一些簡單的應用

標簽:大興安嶺 本溪 涼山 哈密 湖州 海口 常州 泰安

巨人網絡通訊聲明:本文標題《正則表達式教程之元字符的使用詳解》,本文關鍵詞  正則,表達式,教程,之元,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式教程之元字符的使用詳解》相關的同類信息!
  • 本頁收集關于正則表達式教程之元字符的使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产精品自产自拍| 一本大道av一区二区在线播放| 欧美日韩不卡一区| 一区二区三区在线视频观看| 成人精品小蝌蚪| 2018天天弄| 亚洲视频一区二区在线观看| 成人午夜电影网站| 免费成年人视频在线观看| 国产色产综合产在线视频| 激情伊人五月天久久综合| 精品成人无码一区二区三区| 精品久久人人做人人爰| 久久电影国产免费久久电影| 久久久久久久毛片| 久久久精品一品道一区| 国产精品1024| 卡通动漫亚洲综合| 亚洲乱码国产乱码精品精小说 | 欧洲性xxxx| 久久精品视频一区二区三区| 国产在线视频精品一区| 三级黄色片在线观看| 国产精品欧美精品| caoporn国产一区二区| 欧美亚洲动漫精品| 亚洲va中文字幕| aaaaaav| xfplay精品久久| 国产成人av自拍| 色先锋资源久久综合| 一区av在线播放| 日本少妇色视频| 久久久精品日韩欧美| 成人综合婷婷国产精品久久| 欧美综合一区二区三区| 亚洲成人第一页| 精品国产成人亚洲午夜福利| 中文字幕欧美激情| 先锋资源在线视频| 日韩一区二区三区在线| 国产一区91精品张津瑜| 色欧美乱欧美15图片| 爽好久久久欧美精品| 中文字幕av久久爽一区| 1区2区3区欧美| 中文字幕乱视频| 2023国产精品自拍| 成人国产精品免费观看| 欧美精品丝袜久久久中文字幕| 麻豆91在线播放| 久久久久久久久久网站| 水野朝阳av一区二区三区| 国产第一页精品| 亚洲影院在线观看| 女人又爽又黄免费女仆| 亚洲男人电影天堂| 一卡二卡三卡四卡| 日韩伦理av电影| 波多野结衣福利| 亚洲视频你懂的| 无码人妻精品一区二区三应用大全| 中文天堂在线一区| 欧美做受高潮中文字幕| 亚洲国产精品传媒在线观看| 蜜桃色一区二区三区| 久久精品视频在线看| 最新中文字幕日本| 国产蜜臀97一区二区三区| 亚洲成a人无码| 中文字幕国产精品一区二区| 稀缺小u女呦精品呦| 国产精品网站在线观看| 亚洲图片综合网| 日韩毛片高清在线播放| 精品人伦一区二区| 亚洲午夜久久久| 26uuu成人网| 蜜桃91丨九色丨蝌蚪91桃色| 欧美在线一区二区三区| 国产乱人伦偷精品视频不卡| 欧美伦理影视网| 成人禁用看黄a在线| 欧美r级在线观看| 深夜视频在线观看| 国产精品久久久久久久午夜片| 国产精品久久久免费观看| 亚洲三级在线观看| 国产又粗又猛又爽又黄的视频四季 | 国产精品高潮呻吟| 欧美 日本 国产| 亚洲午夜激情网站| 精品欧美一区二区久久久久| 激情丁香综合五月| 日韩午夜激情免费电影| 91麻豆高清视频| 中文字幕制服丝袜一区二区三区| 中文字幕在线看高清电影| 亚洲午夜免费电影| 日本黄色一区二区| 成人永久aaa| 国产亚洲精品精华液| 中文字幕被公侵犯的漂亮人妻| 亚洲aaa精品| 在线观看三级视频欧美| 国产91丝袜在线观看| 久久久久久免费| 男人天堂av电影| 日韩成人一区二区三区在线观看| 精品污污网站免费看| 99精品欧美一区二区蜜桃免费 | 国产乱对白刺激视频不卡| 日韩视频在线你懂得| 永久免费未满蜜桃| 亚洲综合成人网| 在线视频欧美区| 972aa.com艺术欧美| 亚洲视频免费观看| 久久久久久久久久网站| 成人a免费在线看| 国产精品初高中害羞小美女文| 99热这里只有精品4| 国产精品一区免费视频| 久久欧美中文字幕| 超碰97av在线| 国产精品中文字幕欧美| 欧美韩国一区二区| 中文字幕无码日韩专区免费 | 亚洲精品美腿丝袜| 日本国产一区二区| 91在线精品秘密一区二区| 亚洲精品福利视频网站| 欧美亚洲国产一区在线观看网站| 91丝袜国产在线播放| 伊人婷婷欧美激情| 欧美日韩精品一区二区天天拍小说| 伊人影院在线观看视频| 亚洲成人午夜影院| 欧美一区二区黄| 国产人妻大战黑人20p| 国产一区二区福利| 国产精品久久网站| 91黄视频在线观看| 亚洲美女高潮久久久| 日韩精品一二三四| 亚洲精品一区二区三区福利| 久久久精品成人| 成人福利视频在线看| 亚洲精品视频在线| 欧美一区二区在线看| 亚洲理论片在线观看| 国产成人免费视频一区| 日韩毛片一二三区| 7878成人国产在线观看| 亚洲av综合一区二区| 国产成人8x视频一区二区| 自拍偷拍欧美激情| 在线综合亚洲欧美在线视频| 色一情一交一乱一区二区三区| 国产乱码精品一区二区三区忘忧草 | www.久久精品| 亚洲伊人伊色伊影伊综合网| 精品日韩一区二区三区免费视频| av资源在线免费观看| 99re视频精品| 肉色丝袜一区二区| 国产色综合一区| 欧美视频在线一区| 丰腴饱满的极品熟妇| 成人av中文字幕| 天天影视涩香欲综合网| 久久精品视频网| 欧亚洲嫩模精品一区三区| 亚洲成人av免费在线观看| 国产很黄免费观看久久| 亚洲成人在线免费| 国产日韩欧美综合在线| 欧美色爱综合网| 色噜噜日韩精品欧美一区二区| 成人av电影在线播放| 日韩黄色一级片| 中文字幕永久在线不卡| 欧美一区二区三区免费在线看 | 久久成人久久爱| 亚洲三级视频在线观看| 日韩欧美一级精品久久| 黑人巨大精品一区二区在线| 无遮挡aaaaa大片免费看| 成人av网站在线观看免费| 蜜臀久久久久久久| 亚洲欧洲综合另类| 欧美v国产在线一区二区三区| 一本久道久久综合中文字幕| 人妻精品久久久久中文字幕| 99久久婷婷国产综合精品| 另类成人小视频在线| 亚洲制服丝袜av| 日本一区二区视频在线观看| 欧美一级高清片在线观看| 色综合久久中文字幕综合网|