亚洲欧美第一页_禁久久精品乱码_粉嫩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 奠定了正則表達式旗手的地位。現在,它已經深入到了所有的程序設計語言中,在程序設計語言中,正則表達式可以說是標準配置了。<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一区二区三区免费野_久草精品视频
国产精品传媒入口麻豆| 欧美日韩国产综合久久| 99久久99久久免费精品蜜臀| 91在线云播放| 欧美日韩不卡在线| 久久综合色综合88| 亚洲少妇30p| 午夜不卡av免费| 狠狠色丁香婷综合久久| av电影在线不卡| 欧美精品在欧美一区二区少妇| 精品国产麻豆免费人成网站| 亚洲国产高清aⅴ视频| 亚洲一区中文在线| 激情av综合网| 色拍拍在线精品视频8848| 7777精品伊人久久久大香线蕉完整版| 久久嫩草精品久久久精品| 亚洲女厕所小便bbb| 另类人妖一区二区av| 99久久久久久| 精品三级在线看| 亚洲精品日韩一| 国产一本一道久久香蕉| 欧美午夜精品久久久久久超碰| www国产精品av| 亚洲国产三级在线| 国产成人在线视频免费播放| 精品污污网站免费看| 久久精品人人做人人综合 | 免费成人结看片| 99久久精品国产麻豆演员表| 日韩亚洲欧美高清| 伊人色综合久久天天| 国产精品自拍一区| 欧美美女喷水视频| 日韩美女精品在线| 国产一区二区精品在线观看| 欧美人体做爰大胆视频| 中文字幕五月欧美| 国产精品自在在线| 日韩欧美一区在线观看| 亚洲在线免费播放| 91浏览器在线视频| 日本一区二区免费在线观看视频| 丝袜美腿亚洲色图| 在线观看中文字幕不卡| 国产精品美女久久久久久| 国产一区二区看久久| 日韩午夜在线播放| 午夜日韩在线电影| 在线观看日韩av先锋影音电影院| 国产精品情趣视频| 国产综合色在线| 欧美不卡激情三级在线观看| 亚州成人在线电影| 欧美在线免费播放| 亚洲激情男女视频| 91麻豆国产在线观看| 亚洲国产高清不卡| 成人夜色视频网站在线观看| www日韩大片| 国产一区二区免费在线| 日韩一区二区在线看| 午夜精品爽啪视频| 欧美日韩大陆一区二区| 亚洲一卡二卡三卡四卡五卡| 日本乱人伦aⅴ精品| 亚洲精品中文在线影院| 99国产欧美另类久久久精品| 国产精品色在线观看| 丁香网亚洲国际| 欧美韩国日本综合| 粉嫩欧美一区二区三区高清影视| 久久精品欧美日韩| 高清成人在线观看| 国产精品久久午夜| 91香蕉视频污在线| 亚洲精品成a人| 欧美偷拍一区二区| 亚洲高清视频中文字幕| 欧美日韩精品系列| 喷白浆一区二区| 日韩女同互慰一区二区| 国内精品伊人久久久久影院对白| 亚洲精品一区在线观看| 国产精品1024久久| 亚洲天天做日日做天天谢日日欢| 色综合久久久久久久久久久| 亚洲午夜三级在线| 欧美一区二区国产| 激情小说欧美图片| 国产精品拍天天在线| 91在线观看免费视频| 亚洲一区二区在线免费看| 欧美日本一区二区在线观看| 三级一区在线视频先锋| 精品国产伦一区二区三区观看方式| 精品亚洲成av人在线观看| 国产视频一区二区在线观看| 99久久精品国产观看| 五月激情综合网| 精品久久久久香蕉网| 成人av动漫在线| 亚洲一级二级在线| 日韩欧美不卡在线观看视频| 成人午夜激情在线| 一区二区三区中文字幕| 欧美一区二区视频免费观看| 国模套图日韩精品一区二区| 中文字幕av一区二区三区高 | 中文字幕免费在线观看视频一区| 顶级嫩模精品视频在线看| 一区二区成人在线视频| 欧美一区中文字幕| 国产91清纯白嫩初高中在线观看 | 99视频在线精品| 亚洲国产精品久久人人爱| 欧美成人午夜电影| 99精品偷自拍| 青青国产91久久久久久| 国产欧美精品一区二区色综合朱莉| 色综合久久久久综合体| 久久电影网电视剧免费观看| 国产精品美女久久久久高潮| 欧美日韩一区不卡| 国产乱子伦视频一区二区三区 | 94色蜜桃网一区二区三区| 丝袜亚洲另类丝袜在线| 国产欧美日韩不卡免费| 欧美群妇大交群的观看方式| 国产一区二区免费看| 亚洲成a人在线观看| 久久久久亚洲综合| 欧美三级资源在线| 成人免费福利片| 全国精品久久少妇| 亚洲三级免费观看| 精品国产一区二区三区久久久蜜月| av在线不卡电影| 毛片av一区二区三区| 亚洲欧美日韩国产综合| 26uuu国产在线精品一区二区| 91久久久免费一区二区| 国产原创一区二区| 午夜激情久久久| 亚洲三级电影网站| 久久久精品蜜桃| 91.成人天堂一区| 日本韩国一区二区| 丁香六月综合激情| 久久精品免费观看| 亚洲高清视频中文字幕| 亚洲欧美综合网| 久久先锋影音av鲁色资源网| 欧美日韩在线免费视频| 91在线你懂得| 国产成人啪午夜精品网站男同| 日韩一区精品视频| 一区二区三区四区在线播放| 欧美韩日一区二区三区四区| 精品国产乱码久久久久久久久| 欧美日韩国产高清一区二区三区| 不卡视频免费播放| 国产精品一二三| 久国产精品韩国三级视频| 婷婷夜色潮精品综合在线| 伊人一区二区三区| 一区二区三区在线免费视频| 亚洲国产精品v| 国产女人水真多18毛片18精品视频| 日韩精品中文字幕一区| 91精品国产综合久久精品性色| 欧美这里有精品| 日本道免费精品一区二区三区| www.日本不卡| 成人高清视频免费观看| 国产福利精品导航| 国产精品亚洲成人| 国产一区二区福利| 国内精品免费**视频| 紧缚奴在线一区二区三区| 麻豆成人av在线| 麻豆精品视频在线观看视频| 丝袜国产日韩另类美女| 亚洲成人精品在线观看| 亚洲国产三级在线| 五月综合激情日本mⅴ| 午夜视频在线观看一区二区三区| 亚洲自拍另类综合| 亚洲国产精品综合小说图片区| 亚洲一区二区在线免费观看视频| 亚洲最新在线观看| 亚洲综合自拍偷拍| 亚洲va韩国va欧美va精品| 香蕉av福利精品导航| 日韩一区欧美二区| 激情小说亚洲一区| 东方aⅴ免费观看久久av| 99re成人在线|