婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 正則表達式教程之位置匹配詳解

正則表達式教程之位置匹配詳解

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

本文實例講述了正則表達式教程之位置匹配。分享給大家供大家參考,具體如下:

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

一、問題引入

如果想匹配一段文本中的某個單詞(暫不考慮多行模式,將在后面介紹),我們可能會像下面這樣:

文本:Yesterday is history, tomorrow is a mystery, but today is a gift.

正則表達式:is

結(jié)果:Yesterday 【is】 h【is】tory, tomorrow 【is】 a mystery, but today 【is】 a gift.

分析:本來只是要匹配單詞is,但把其他單詞中包含的is也匹配出來了。要解決這個問題,使用邊界界定符,也就是在正則表達式里用一些元字符來表明我們想讓匹配操作在什么位置(或邊界)發(fā)生。

二、單詞邊界

一種常用的邊界是由限定符\b指定的單詞邊界,\b用來匹配單詞的開始和結(jié)尾。更確切地說,它是匹配這樣一個位置,這個位置位于一個能夠用來構成單詞的字符(字母、數(shù)字、下劃線,也就是與\w相匹配的字符)和一個不能用來構成單詞的字符(與\W相匹配的字符)之間。來看前面的例子:

文本:Yesterday is history, tomorrow is a mystery, but today is a gift.

正則表達式:\bis\b

結(jié)果:Yesterday 【is】 history, tomorrow 【is】 a mystery, but today 【is】 a gift.

分析:在原始文本中,單詞is的前后都有一個空格,而這與模式\bis\b匹配(空格是用來分隔單詞的字符之一)。而單詞history中也包含了is,因為它的前后分別有一個字符h和t,這兩個字符都不能與\b匹配。

如果不匹配一個單詞邊界,則使用\B。如:

文本:Please enter the nine-digit id as it appears on your color - coded pass-key.

正則表達式:\B-\B

結(jié)果:Please enter the 【nine-digit】 id as it appears on your color - coded 【pass-key】.

分析:\B-\B將匹配一個前后都不是單詞邊界的連字符,nine-digit和pass-key中連字符前后都沒有空格,所以能夠匹配,而color - coded中連字符前后都有空格,所以不能匹配。

三、字符串邊界

單詞邊界可以用來進行與單詞有關的位置匹配(單詞開頭、結(jié)束、整個單詞等等)。而字符串邊界也有著類似的用途,只不過是用來進行與字符串有關的位置匹配(字符串開頭、結(jié)束、整個字符串等等)。用來定義字符串邊界的元字符有兩個:一個是用來定義字符串開頭的^,另一個是用來定義字符串結(jié)尾的$。

比如要檢查一個XML文檔的合法性,合法的XML文檔都以?xml…..?>這樣形式開頭:

文本:

?xml version="1.0" encoding="UTF-8"?>
project basedir="." default="ear">
/project>

正則表達式:^\s*\&;xml.*?\&;>

結(jié)果:

?xml version="1.0" encoding="UTF-8"?>
project basedir="." default="ear">
/project>

分析:^匹配一個字符串的開頭位置,所以^\s*將匹配一個字符串的開頭位置和隨后的零個或多個空白字符,因為?xml>標簽前面允許有空格、制表符、換行符等空白字符。

$元字符符的用法除了位置上的差異外,與^用法完全一樣。比如,檢查一個html頁面是否以/html>結(jié)尾,可以用模式:/[Hh][Tt][Mm][Ll]>\s*$

四、多行匹配模式

正則表達式可以通過一些特殊的元字符來改變另外一些元字符的行為??梢酝ㄟ^(?m) 來啟用多行匹配模式。多行匹配模式將使得正則表達式引擎把行分隔符當做一個字符串分隔符來對待。在多行匹配模式下,^不僅匹配正常的字符串開頭,還將匹配行分隔符(換行符)后面的開始位置,$不僅匹配正常的字符串結(jié)尾,還將匹配行分隔符(換行符)后面的結(jié)束位置。

在使用時,(?m)必須出現(xiàn)在整個模式的最前面。比如,通過正則表達式把一段java代碼中的單行注釋(以//開始)內(nèi)容全部找出來。

文本:

publicDownloadingDialog(Frame parent){
     //Callsuper constructor, specifying that dialog box is modal.
     super(parent,true);
     //Setdialog box title.
     setTitle("E-mailClient");
     //Instructwindow not to close when the "X" is clicked.
     setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
     //Puta message with a nice border in this dialog box.
     JPanelcontentPanel = new JPanel();
     contentPanel.setBorder(BorderFactory.createEmptyBorder(5,5, 5, 5));
     contentPanel.add(newJLabel("Downloading messages..."));
     setContentPane(contentPanel);
     //Sizedialog box to components.
     pack();
     //Centerdialog box over application.
     setLocationRelativeTo(parent);
}

正則表達式:(?m)^\s*//.*$

結(jié)果:

         publicDownloadingDialog(Frame parent){
【              //Call superconstructor, specifying that dialog box is modal.】
                   super(parent,true);
【              //Set dialog boxtitle.】
                   setTitle("E-mailClient");
【              //Instruct windownot to close when the "X" is clicked.】
                   setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
【              //Put a messagewith a nice border in this dialog box.】
                   JPanelcontentPanel = new JPanel();
                   contentPanel.setBorder(BorderFactory.createEmptyBorder(5,5, 5, 5));
                   contentPanel.add(newJLabel("Downloading messages..."));
                   setContentPane(contentPanel);
【              //Size dialog boxto components.】
                   pack();
【              //Center dialogbox over application.】
                   setLocationRelativeTo(parent);
         }

分析:^\s*//.*$將匹配一個字符串的開始,然后是任意多個空白字符,再后面是//,再往后是任意文本,最后是一個字符串的結(jié)束。不過這個模式只能找出第一條注釋,加上(?m)前綴后,將把換行符視為一個字符串分隔符,這樣就可以把每一行注釋匹配出來了。

java代碼實現(xiàn)如下(文本保存在text.txt文件中):

public static String getTextFromFile(String path) throws Exception{
  BufferedReader br = new BufferedReader(new FileReader(new File(path)));
  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);
  }
    br.close();
  return sb.toString();
}
public static void multilineMatch() throws Exception{
  String text = getTextFromFile("E:/text.txt");
  String regex = "(?m)^\\s*//.*$";
  Matcher m = Pattern.compile(regex).matcher(text);
  while(m.find()){
    System.out.println(m.group());
  }
}

輸出結(jié)果如下:

//Call super constructor, specifying that dialog box is modal.
//Set dialog box title.
//Instruct window not to close when the "X" is clicked.
//Put a message with a nice border in this dialog box.
//Size dialog box to components.
//Center dialog box over application.

五、小結(jié)

正則表達式不僅可以用來匹配任意長度的文本塊,還可以用來匹配出現(xiàn)在字符串中特定位置的文本。\b用來指定一個單詞邊界(\B剛好相反)。^和$用來指定單詞邊界。如果與(?m)配合使用,^和$還將匹配在一個換行符處開頭或結(jié)尾的字符串。在接下來的文章中將介紹子表達式的使用。

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

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

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

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

您可能感興趣的文章:
  • 正則表達式匹配用戶密碼
  • Javascript校驗密碼復雜度的正則表達式
  • 手機號碼,密碼正則驗證
  • php password密碼驗證正則表達式(8位長度限制)
  • js正則實現(xiàn)的密碼框簡單制作,還可以替換成自己想用得符號
  • 密碼強度檢測函數(shù)(正則)
  • 正則表達式教程之重復匹配詳解
  • 正則表達式教程之匹配一組字符詳解
  • 正則表達式教程之匹配單個字符詳解
  • JS正則匹配中文的方法示例
  • 正則匹配密碼只能是數(shù)字和字母組合字符串功能【php與js實現(xiàn)】

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

巨人網(wǎng)絡通訊聲明:本文標題《正則表達式教程之位置匹配詳解》,本文關鍵詞  正則,表達式,教程,之,位置,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式教程之位置匹配詳解》相關的同類信息!
  • 本頁收集關于正則表達式教程之位置匹配詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧洲另类国产综合| 免费亚洲电影在线| 不卡一二三区首页| 日韩高清在线一区| 一区二区三区色| 国产精品无码永久免费888| 欧美日韩国产免费| 99re成人精品视频| 国产成人av网站| 激情综合网天天干| 日日夜夜免费精品视频| 亚洲精品日产精品乱码不卡| 久久精品人人做人人爽人人| 精品人伦一区二区色婷婷| 欧美日本在线观看| 欧美三级电影在线观看| 欧美日韩视频在线观看一区二区三区 | 性做久久久久久久久| 国产精品网站在线| 久久亚洲精品小早川怜子| 欧美色精品在线视频| 欧美中文字幕亚洲一区二区va在线| 国产69精品久久久久777| 极品瑜伽女神91| 久久66热偷产精品| 美女视频黄a大片欧美| 亚洲国产精品久久久男人的天堂| 亚洲欧美经典视频| 一区二区三区中文免费| 亚洲激情六月丁香| 亚洲一区二区三区自拍| 一区二区三区在线播| 一二三四社区欧美黄| 亚洲国产精品一区二区www在线 | 91麻豆精品国产91久久久使用方法| 在线观看91视频| 欧美人与z0zoxxxx视频| 欧美群妇大交群的观看方式| 91超碰这里只有精品国产| 91超碰这里只有精品国产| 9191成人精品久久| 26uuuu精品一区二区| 精品国产一区二区三区四区四| 国产亚洲自拍一区| 亚洲三级电影网站| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲一区二区视频在线观看| 婷婷亚洲久悠悠色悠在线播放| 久久精品免费观看| 成人黄色综合网站| 欧美日本韩国一区| 91精品国产品国语在线不卡| 精品乱码亚洲一区二区不卡| 久久久国产午夜精品| 国产精品国产三级国产| 亚洲欧美日韩国产一区二区三区| 国产精品理论片| 国产精品第五页| 亚洲综合无码一区二区| 美女在线一区二区| 热久久一区二区| 成人网男人的天堂| 欧美性生交片4| 精品第一国产综合精品aⅴ| 亚洲欧洲综合另类在线| 青青青伊人色综合久久| 99re热视频精品| 精品美女被调教视频大全网站| 亚洲视频在线一区观看| 美女脱光内衣内裤视频久久影院| 色综合久久久久综合| 精品国产91洋老外米糕| 亚洲精品美国一| 丰满岳乱妇一区二区三区| 91精品国产综合久久蜜臀| 国产精品麻豆视频| 免费看欧美女人艹b| 91在线精品一区二区| 日韩一二在线观看| 一区二区三区蜜桃| 成人午夜视频在线| 日韩欧美中文字幕精品| 亚洲综合色成人| 成人v精品蜜桃久久一区| 91精品国产免费久久综合| 亚洲欧美怡红院| 国产黑丝在线一区二区三区| 日韩欧美一区二区不卡| 亚洲在线免费播放| www.在线欧美| 中文字幕欧美激情一区| 韩国女主播一区| 日韩天堂在线观看| 夜夜操天天操亚洲| 色欧美88888久久久久久影院| 国产日韩成人精品| 国产精品亚洲成人| 国产视频一区不卡| 国产精品性做久久久久久| 精品人伦一区二区色婷婷| 日本午夜精品一区二区三区电影| 在线亚洲人成电影网站色www| 中文字幕在线观看不卡视频| 丁香激情综合国产| 一区在线观看免费| 91丨porny丨最新| 伊人夜夜躁av伊人久久| 在线观看国产精品网站| 亚洲福利视频一区二区| 欧美亚洲另类激情小说| 亚洲同性同志一二三专区| jlzzjlzz亚洲女人18| 国产精品久久毛片a| yourporn久久国产精品| 亚洲精品你懂的| 91精品免费观看| 久久国内精品自在自线400部| 亚洲高清视频中文字幕| 91丝袜国产在线播放| 一区二区三区资源| 日韩写真欧美这视频| 国产精品888| 亚洲另类一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 午夜视频在线观看一区二区| 51午夜精品国产| 国精产品一区一区三区mba桃花| 久久精品一区二区三区av| 99视频超级精品| 日本一区中文字幕| 国产欧美日韩久久| 欧美三级日韩三级| 国产精品一二三在| 亚洲成人在线网站| 久久久久久久久久久久久久久99| 色哟哟日韩精品| 久久精品理论片| 1区2区3区精品视频| 51精品秘密在线观看| 国产99久久久久| 亚洲狠狠爱一区二区三区| 精品国产成人系列| 欧美色倩网站大全免费| 大胆欧美人体老妇| 蜜桃久久久久久久| 亚洲午夜在线电影| 国产目拍亚洲精品99久久精品| 欧美日韩国产大片| 99久久久无码国产精品| 国内精品久久久久影院一蜜桃| 亚洲一区二区三区中文字幕在线| 精品国产欧美一区二区| 成人网在线播放| 国产伦精品一区二区三区在线观看| 专区另类欧美日韩| 日韩欧美亚洲国产另类| 欧美撒尿777hd撒尿| 波多野结衣一区二区三区| 男女男精品视频| 亚洲午夜一区二区| |精品福利一区二区三区| 欧美久久高跟鞋激| 在线精品视频免费播放| 大白屁股一区二区视频| 久久精品二区亚洲w码| 亚洲高清三级视频| 亚洲三级视频在线观看| 国产精品盗摄一区二区三区| 精品三级在线看| 日韩一本二本av| 91精品国产欧美日韩| 精品视频在线免费观看| 一本色道久久综合狠狠躁的推荐| 久久精品国产色蜜蜜麻豆| 午夜免费欧美电影| 亚洲综合一区二区| 国产精品成人在线观看| 久久中文娱乐网| 久久久久久久综合色一本| 欧美性欧美巨大黑白大战| 91极品美女在线| 欧美最猛性xxxxx直播| 国产成人综合网| 国产成人免费高清| 国产馆精品极品| 国产激情视频一区二区三区欧美| 国产美女在线观看一区| 免费成人性网站| 欧美aaaaaa午夜精品| 美女免费视频一区二区| 亚洲观看高清完整版在线观看 | av一区二区三区在线| 成人性色生活片| 国产精品一区二区在线播放 | 九九**精品视频免费播放| 日韩和欧美一区二区| 视频一区二区中文字幕| 奇米在线7777在线精品| 奇米色一区二区三区四区| 激情深爱一区二区|