亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? java.regex.tutorial.html

?? Regular Expressions of Java Tutorial
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="author" content="CSDN bao110908">
    <meta name="description" content="Java Regex Tutorial translated from Java Tutorial">
    <link rel="stylesheet" href="resource/style.css" type="text/css">
    <script type='text/javascript' src='resource/javascript.js'></script>
    <title>Java正則表達式教程</title>
  </head>
<style type="text/css">
</style>
  <body id="body">
  <div>
<table align="center" class="text"><tr><td>

<div id="h1">&nbsp;&nbsp;Java正則表達式教程&nbsp;<a name="note_01"></a><sup><a href="#note01">[1]</a></sup><br/>
<span id="h1b">Regular Expressions of Java Tutorial</span></div>

<div id="h2"><a name="foreword"></a>譯者序</div>
  正則表達式善于處理文本,對匹配、搜索和替換等操作都有意想不到的作用。正因如此,正則表達式現在是作為程序員七種基本技能之一<a name="noteStart_01"></a><sup><a href="#noteStart01"><font size="5pt">*</font></a></sup>,因此學習和使用它在工作中都能達到很高的效率。<br/>
  正則表達式應用于程序設計語言中,首次是出現在 Perl 語言,這也讓 Perl 奠定了正則表達式旗手的地位?,F在,它已經深入到了所有的程序設計語言中,在程序設計語言中,正則表達式可以說是標準配置了。<br/>
  Java 中從 JDK 1.4 開始增加了對正則表達式的支持,至此正則表達式成為了 Java 中的基本類庫,使用時不需要再導入第三方的類庫了。Java 正則表達式的語法來源于象征著正則表達式標準的 Perl 語言,但也不是完全相同的,具體的可以參看 Pattern 類的 API 文檔說明。<br/>
  我在一次偶然中發現了位于 <a href="http://java.sun.com" target="_blank">java.sun.com</a> 站點上的 <a href="http://java.sun.com/docs/books/tutorial/" target="_blank"><cite>Java Tutorial</cite></a>,也在那里看到了關于 Java 的正則表達式教程,感覺它不同于其他的正則表達式教程,文中以大量的匹配實例來進行說明。為了能讓 Java 學習者能更好地使用正則表達式,就將其完整地譯出了。該教程中所介紹的正則表達式應用僅僅是最為簡單的(并沒有完全地涉及到 Pattern 類支持的所有正則表達式語法,也沒有涉及到高級的應用),適合于從未接觸過或者是尚未完全明白正則表達式基礎的學習者。在學習完該教程后,應該對正則表達式有了初步的了解,并能熟練地運用 java.util.regex 包中的關于正則表達式的類庫,為今后學習更高級的正則表達式技術奠定良好的基礎。<br/>
  教程中所有的源代碼都在 src 目錄下,可以直接編譯運行。由于當前版本的 <a href="http://java.sun.com/docs/books/tutorial/" target="_blank"><cite>Java Tutorial</cite></a> 是基于 JDK 6.0 的,因此其中的示例程序也用到了 JDK 6.0 中的新增類庫,但正則表達式在 JDK 1.4 就已經存在了,為了方便大家使用,改寫了部分的源代碼,源代碼類名中后綴為“V4”的表示用于 JDK 1.4 或以上版本,“V5”的表示用于 JDK 5.0 或以上版本,沒有這些后綴的類在各個版本中均可以正常使用。<br/>
  由于譯者的水平和技術能力有限,譯稿雖經多次校對,難免有疏漏之處,敬請大家批評和指正。若有發現不妥之處,請發送郵件至 <a href="mailto: FrankieGao123@gmail.com">FrankieGao123@gmail.com</a>,我會在 <a href="http://blog.csdn.net/bao110908" target="_blank">blog</a> 中進行勘誤,謝謝!<br/>
<p/>
    火龍果頓首!<p/>

<div style="text-align: right; padding-bottom: 20px; margin-right: 24pt;">
2008 年 2 月 27 日</div><p/><p/>

<hr width="25%" align="left"><br/>
<p id="note">&nbsp;&nbsp;&nbsp;<a name="noteStart01"></a><a href="#noteStart_01">*</a>&nbsp;
這是由《程序員》雜志社評出的,刊登在《程序員》2007 年 3 月刊上。這七種基本技能是:數組,字符串與哈希表、正則表達式、調試、兩門語言、一個開發環境、SQL 語言和編寫軟件的思想。
</p>

<div id="h2"><a name="contents"></a>目錄</div>
<div id="contents">
<ul>
  <li><a href="#foreword">譯者序</a></li>
  <li><a href="#preface">序</a></li>
  <li><a href="#reg0">0 引言</a>
    <ul>
      <li><a href="#reg0_1">0.1 什么是正則表達式?</a></li>
      <li><a href="#reg0_2">0.2 java.util.regex 包是如何描述正則表達式的?</a></li>
    </ul>
  </li>
  <li><a href="#reg1">1 測試用具</a></li>
  <li><a href="#reg2">2 字符串</a>
    <ul>
      <li><a href="#reg2_1">2.1 元字符</li>
    </ul>
  </li>
  <li><a href="#reg3">3 字符類</a>
    <ul>
      <li><a href="#reg3_1">3.1 簡單類</a>
        <ul>
          <li><a href="#reg3_1_1">3.1.1 否定</a></li>
          <li><a href="#reg3_1_2">3.1.2 范圍</a></li>
          <li><a href="#reg3_1_3">3.1.3 并集</a></li>
          <li><a href="#reg3_1_4">3.1.4 交集</a></li>
          <li><a href="#reg3_1_5">3.1.5 差集</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="#reg4">4 預定義字符類</a></li>
  <li><a href="#reg5">5 量詞</a>
    <ul>
      <li><a href="#reg5_1">5.1 零長度匹配</a></li>
      <li><a href="#reg5_2">5.2 捕獲組和字符類中的量詞</a></li>
      <li><a href="#reg5_3">5.3 貪婪、勉強和侵占量詞間的不同</a></li>
    </ul>
  </il>
  <li><a href="#reg6">6 捕獲組</a>
    <ul>
      <li><a href="#reg6_1">6.1 編號方式</a></li>
      <li><a href="#reg6_2">6.2 反向引用</a></li>
    </ul>
  </li>
  <li><a href="#reg7">7 邊界匹配器</a></li>
  <li><a href="#reg8">8 Pattern 類的方法</a>
    <ul>
      <li><a href="#reg8_1">8.1 使用標志構建模式</a></li>
      <li><a href="#reg8_2">8.2 內嵌標志表達式</a></li>
      <li><a href="#reg8_3">8.3 使用 matches(String, CharSequence) 方法</a></li>
      <li><a href="#reg8_4">8.4 使用 split(String) 方法</a></li>
      <li><a href="#reg8_5">8.5 其他有用的方法</a></li>
      <li><a href="#reg8_6">8.6 在 java.lang.String 中等價的 Pattern 方法</a></li>
    </ul>
  </li>
  <li><a href="#reg9">9 Matcher 類的方法</a></li>
    <ul>
      <li><a href="#reg9_1">9.1 使用 start 和 end 方法</a></li>
      <li><a href="#reg9_2">9.2 使用 matches 和 lookingAt 方法</a></li>
      <li><a href="#reg9_3">9.3 使用 replaceFirst(String) 和 replaceAll(String) 方法</a></li>
      <li><a href="#reg9_4">9.4 使用 appendReplacement(StringBuffer, String) 和 appendTail(StringBuffer) 方法</a></li>
      <li><a href="#reg9_5">9.5 在 java.lang.String 中等價的 Matcher 方法</a></li>
    </ul>
  </li>
  <li><a href="#reg10">10 PatternSyntaxException 類的方法</a></li>
  <li><a href="#reg11">11 更多的資源</a></li>
  <li><a href="#reg12">12 問題和練習</a></li>
  <li><a href="#note">注釋</a></li>
  <li><a href="#last">譯后記</a></li>
</ul></div>  
<div id="h2"><a name="preface"></a>序<span class="returnContents"><a href="#contents">返回目錄</a></span></div>
  本文介紹如何使用 java.util.regex API 作為正則表達式模式匹配。雖然說這個包中可被接受的語法參數與 Perl 是相似的,但我們并不需要掌握 Perl 的語法知識。本教程將從基礎開始,逐層深入到更多的高級技巧。下面是各章節的主要內容:<br/>
<div id="h4">0 引言</span></div>
  粗略地看一下正則表達式,同時也介紹組成 API 的核心類。<br/>
<div id="h4">1 測試用具</span></div>
  編寫了一個簡單的應用程序,用于測試正則表達式的模式匹配。<br/>
<div id="h4">2 字符串</span></div>
  介紹基本的模式匹配、元字符和引用。<br/>
<div id="h4">3 字符類</span></div>
  描述簡單字符類、否定、范圍、并集、交集和差集。<br/>
<div id="h4">4 預定義字符類</span></div>
  描述空白字符、字母和數字字符等基本的預定義字符。<br/>
<div id="h4">5 量詞</span></div>
  使用貪婪(greedy)、勉強(reluctant)和侵占(possessive)量詞,來匹配指定表達式 X 的次數。<br/>
<div id="h4">6 捕獲組</span></div>
  解釋如何把多個字符作為一個單獨的單元進行處理。<br/>
<div id="h4">7 邊界匹配器</span></div>
  描述行、單詞和輸入的邊界。<br/>
<div id="h4">8 Pattern 類的方法</span></div>
  測試了 Pattern 中一些有用的方法,以及探究一些高級的特性,諸如:帶標記的編譯和使用內嵌標記表達式。<br/>
<div id="h4">9 Matcher 類的方法</span></div>
  描述了 Matcher 類中通常使用的方法。<br/>
<div id="h4">10 PatternSyntaxException 類的方法</span></div>
  描述了如何檢查一個 PatternSyntaxException 異常。<br/>
<div id="h4">11 更多的資源</span></div>
  要了解更多正則表達式,可以參考這一節。<br/>
<div id="h4">12 問題和練習</span></div>
  鞏固一下本教程所介紹的正則表達式的基本知識,并附有答案。<br/><br/>

  為了區分文檔中的正則表達式和普通字符串,均以<code>\d[abc]{2}</code>的形式表示正則表達式的模式。<br/>

<div id="h2"><a name="reg0"></a>0 引言<span class="returnContents"><a href="#contents">返回目錄</a></span></div>
<div id="h3"><a name="reg0_1"></a>0.1 什么是正則表達式?<span class="returnContents"><a href="#contents">返回目錄</a></span></div>
  <em>正則表達式</em>(regular expressions)是一種描述字符串集的方法,它是以字符串集中各字符串的共有特征為依據的。正則表達式可以用于搜索、編輯或者是操作文本和數據。它超出了 Java 程序設計語言的標準語法,因此有必要去學習特定的語法來構建正則表達式。正則表達式的變化是復雜的,一旦你理解了它們是如何被構造的話,你就能解析或者構建任意的正則表達式了。<br/>
  本教程講授 java.util.regex API 所支持的正則表達式語法,以及介紹幾個可運行的例子來說明不同的對象間是如何交互的。在正則表達式的世界中,有不同風格的選擇,比如:grep<a name="note_02"></a><sup><a href="#note02">[2]</a></sup>、Perl、Tcl、Python、PHP 和 awk。java.util.regex API 中的正則表達式語法與 Perl 中的最為相似。<br/>
<div id="h3"><a name="reg0_2"></a>0.2 java.util.regex 包是如何描述正則表達式的?<span class="returnContents"><a href="#contents">返回目錄</a></span></div>
  java.util.regex 包主要由三個類所組成:Pattern、Matcher 和 PatternSyntaxException。<br/>
<ul id="ulItem">
<li id="item">Pattern 對象表示一個已編譯的正則表達式。Pattern 類沒有提供公共的構造方法。要構建一個模式,首先必須調用公共的靜態 compile 方法,它將返回一個 Pattern 對象。這個方法接受正則表達式作為第一個參數。本教程的開始部分將教你必需的語法。</li>
<li id="item">Matcher 是一個靠著輸入的字符串來解析這個模式和完成匹配操作的對象。與 Pattern 相似,Matcher 也沒有定義公共的構造方法,需要通過調用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。</li>
<li id="item">PatternSyntaxException 對象是一個未檢查異常,指示了正則表達式中的一個語法錯誤。</li>
</ul>
  本教程的最后幾節課程會詳細地說明各個類。首當其沖的問題是:必須理解正則表達式是如何被構建的,因此下一節引入了一個簡單的測試用具,重復地用于探究它們的語法。

<div id="h2"><a name="reg1"></a>1 測試用具<span class="returnContents"><a href="#contents">返回目錄</a></span></div>
  這節給出了一個可重用的測試用具 <a href="src/RegexTestHarness.java">RegexTestHarness.java</a>,用于探究構建 API 所支持的正則表達式。使用<br/>
<pre id="console">java RegexTestHarness</pre>
這個命令來運行,沒有被接受的命令行參數。這個應用會不停地循環執行下去<a name="note_03"></a><sup><a href="#note03">[3]</a></sup>,提示用戶輸入正則表達式和字符串。雖然說使用這個測試用具是可選的,但你會發現它用于探究下文所討論的測試用例將更為方便。

<pre name="java" id="java">import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTestHarness {

    public static void main(String[] args) {
        Console console = System.console();
        if (console == null) {
            System.err.println("No console.");
            System.exit(1);
        }
      
        while (true) {
            Pattern pattern = Pattern.compile(console.readLine("%nEnter your regex: "));
            Matcher matcher = pattern.matcher(console.readLine("Enter input string to search: "));
            boolean found = false;
            while (matcher.find()) {
                console.format("I found the text \"%s\" starting at index %d " +
                        "and ending at index %d.%n",
                        matcher.group(), matcher.start(), matcher.end());
                found = true;
            }
            if (!found) {
                console.format("No match found.%n");
            }
        }
    }
}</pre>

  在繼續下一節之前,確認開發環境支持必需的包,并保存和編譯這段代碼。

<div id="h4">【譯者注】</span></div>
  由于當前版本的 <a href="http://java.sun.com/docs/books/tutorial/" target="_blank"><cite>Java Tutorial</cite></a> 是基于 JDK 6.0 編寫的,上述的測試用具由于使用到 JDK 6.0 中新增的類庫(java.io.Console),所以該用具只能在 JDK 6.0 的環境中編譯運行,由于 Console 訪問操作系統平臺上的控制臺,因此這個測試用具只能在操作系統的字符控制臺中運行,不能運行在 IDE 的控制臺中。<br/>
  正則表達式是 JDK 1.4 所增加的類庫,為了兼容 JDK 1.4 和 JDK 5.0 的版本,重新改寫了這個測試用具,讓其能適用于不同的版本。<br/>
  JDK 5.0 適用的測試用具(<a href="src/RegexTestHarnessV5.java">RegexTestHarnessV5.java</a>,該用具可以在 IDE 中執行),建議 JDK 6.0 環境也采用該用具。<br/>
<pre name="java" id="java">import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTestHarnessV5 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.printf("%nEnter your regex: ");
            Pattern pattern = Pattern.compile(scanner.nextLine());
            System.out.printf("Enter input string to search: ");
            Matcher matcher = pattern.matcher(scanner.nextLine());
            boolean found = false;
            while (matcher.find()) {
                System.out.printf(
                        "I found the text \"%s\" starting at index %d and ending at index %d.%n",
                        matcher.group(), matcher.start(), matcher.end()
                    );
                found = true;
            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
337p亚洲精品色噜噜噜| 欧美激情在线一区二区| 2020国产精品| 亚洲激情第一区| 久久97超碰国产精品超碰| 91麻豆.com| 2021中文字幕一区亚洲| 午夜精品一区二区三区免费视频 | 亚洲高清免费观看高清完整版在线观看 | 日本亚洲欧美天堂免费| 99久久精品国产网站| 亚洲精品在线电影| 日韩精品免费专区| 一本到不卡免费一区二区| 国产农村妇女毛片精品久久麻豆| 日韩av一级电影| 6080午夜不卡| 精品午夜久久福利影院| 欧美日韩国产三级| 艳妇臀荡乳欲伦亚洲一区| 色综合久久六月婷婷中文字幕| 久久久久久久久久美女| 国产在线看一区| 日韩欧美国产综合一区| 日本午夜精品视频在线观看| 欧美日韩精品专区| 亚洲18色成人| 欧美一区二区久久久| 免费精品99久久国产综合精品| 欧美乱妇20p| 天天色天天操综合| 欧美一级在线观看| 免费成人你懂的| 欧美电影免费提供在线观看| 奇米精品一区二区三区四区| 91精品一区二区三区久久久久久| 图片区小说区国产精品视频| 777午夜精品免费视频| 婷婷中文字幕综合| 欧美一级欧美三级| 国产专区欧美精品| 欧美激情一区在线| 91国偷自产一区二区三区成为亚洲经典 | 日韩欧美一区电影| 国产一区二区精品在线观看| 久久精品欧美一区二区三区不卡| 国产成人精品亚洲777人妖 | 在线免费观看不卡av| 亚洲国产精品久久不卡毛片| 欧美一级视频精品观看| 黄页网站大全一区二区| 欧美国产精品中文字幕| 91麻豆swag| 奇米影视一区二区三区| 久久久久国产成人精品亚洲午夜| 99re66热这里只有精品3直播 | 日韩片之四级片| 成人av小说网| 午夜av电影一区| 久久久高清一区二区三区| bt欧美亚洲午夜电影天堂| 亚洲成精国产精品女| 欧美精品一区二区三区在线播放 | 亚洲在线视频网站| 日韩免费性生活视频播放| 高清不卡一区二区| 亚洲123区在线观看| 日本一区二区在线不卡| 欧美丰满少妇xxxxx高潮对白| 国精产品一区一区三区mba视频 | 日韩欧美在线综合网| 成人免费看黄yyy456| 天天色图综合网| 国产精品久久久爽爽爽麻豆色哟哟| 欧美猛男超大videosgay| 国产一区二区三区最好精华液| 亚洲欧美成人一区二区三区| 久久婷婷国产综合精品青草| 欧美日韩亚洲综合在线| 成人小视频在线观看| 老司机免费视频一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美精选一区二区| 91网址在线看| 国产91在线看| 国产毛片一区二区| 日本成人中文字幕| 曰韩精品一区二区| 国产精品久久久久久久久动漫 | 成人av网站在线| 免费人成在线不卡| 亚洲第一综合色| 亚洲精品日日夜夜| 中文字幕亚洲在| 国产丝袜在线精品| 精品国产一区二区三区忘忧草| 欧美日韩国产区一| 欧美性极品少妇| 91在线观看美女| 成人丝袜高跟foot| 国产精品18久久久久久久久| 国内精品久久久久影院一蜜桃| 青青草国产成人99久久| 丝袜美腿亚洲色图| 午夜成人免费电影| 污片在线观看一区二区| 午夜精品福利一区二区三区蜜桃| 自拍偷拍欧美精品| 亚洲乱码日产精品bd| 亚洲少妇30p| 一区二区在线看| 夜夜嗨av一区二区三区四季av | 国产麻豆一精品一av一免费| 六月丁香综合在线视频| 美女视频一区在线观看| 久久se精品一区精品二区| 激情av综合网| 高潮精品一区videoshd| 成人av在线网| 日本高清不卡一区| 欧美在线看片a免费观看| 欧美日韩三级一区| 欧美一区二区三区在线电影| 精品少妇一区二区三区在线播放| 日韩精品一区二区三区视频播放| 久久久午夜电影| 国产女主播在线一区二区| **欧美大码日韩| 一区二区三区小说| 日韩精品亚洲专区| 国产一区二区三区四区五区入口| 国产成人精品免费在线| 97精品国产97久久久久久久久久久久 | 欧美欧美欧美欧美首页| 欧美α欧美αv大片| 久久综合av免费| 亚洲精品视频免费看| 男女男精品视频| 国产1区2区3区精品美女| 日本精品一级二级| 欧美一级一级性生活免费录像| 欧美mv日韩mv国产网站app| 中文子幕无线码一区tr| 亚洲成av人片一区二区三区| 国内精品久久久久影院薰衣草| aaa国产一区| 制服丝袜中文字幕一区| 国产精品入口麻豆九色| 亚洲成人7777| 成人免费的视频| 日韩一区二区三区精品视频| 欧美激情资源网| 亚洲一线二线三线久久久| 九九九久久久精品| 91亚洲男人天堂| 精品日韩在线观看| 亚洲精品国产第一综合99久久| 精品在线你懂的| 欧美视频一区二区三区四区| 国产三级精品三级在线专区| 视频一区视频二区在线观看| 成人在线一区二区三区| 欧美一区二区成人| 亚洲欧美日韩国产另类专区| 国产一区视频导航| 欧美日韩国产首页在线观看| 国产精品久久午夜夜伦鲁鲁| 久久99国产精品久久| 在线成人免费视频| 亚洲欧美另类久久久精品2019| 极品少妇一区二区| 欧美日韩国产免费一区二区| 亚洲日本在线视频观看| 国产一区二区美女| 日韩一级片在线播放| 亚洲图片欧美视频| 色网综合在线观看| 亚洲桃色在线一区| 成人性生交大合| 国产婷婷一区二区| 国产一区二区三区在线观看精品| 欧美一卡二卡在线观看| 亚洲小说欧美激情另类| 91国在线观看| 亚洲黄一区二区三区| 色综合中文字幕国产 | 国产精品久久网站| 福利一区二区在线观看| 国产色产综合产在线视频| 久久精品国产亚洲5555| 日韩三级在线免费观看| 日本视频在线一区| 337p亚洲精品色噜噜| 日本不卡视频在线| 91精品国产高清一区二区三区 | 自拍偷拍亚洲激情| 99麻豆久久久国产精品免费| 国产精品高潮久久久久无| 成人免费视频视频| 亚洲欧洲日韩av|