正則表達式描述的是一種規(guī)則,符合這種限定規(guī)則的字符串我們認為它某種滿足條件的,是我們所需的。在正則表達式中,主要有兩種字符,一種描述的是普通的字符,另一種描述的是元字符。其中元字符是整個正則表達式的核心,并由它完成規(guī)則的制定工作。本篇文章主要從Java這門程序設(shè)計語言的角度理解正則表達式的應(yīng)用,主要涉及以下內(nèi)容:

  • 基本正則表達式的理論基礎(chǔ)

  • Java中用于正則表達式匹配的類

  • 幾種常用的正則表達式使用實例

一、正則表達式的理論基礎(chǔ)

     1、普通字符的表示
     我們說正則表達式主要由普通字符和元字符組成,那么我們首先先看看普通字符該如何表示。大部分普通字符由字符本身即可表示,例如:'s','i','n','g','l','e'等。除此之外,也有一些特殊的表示方式。
     以/0開頭,后面緊跟1-3位數(shù)字,表示的是一個八進制數(shù)。這個數(shù)的十進制值對應(yīng)于ASCII編碼中的相應(yīng)字符。
     以/x或者/X開頭,后面緊跟兩位字符,表示的是一個十六進制的數(shù)。該數(shù)的十進制的值對應(yīng)于ASCII編碼中相應(yīng)的字符。
     以/u開頭,后面緊跟四位字符,表示一個Unicode編號。該編號對應(yīng)于Unicode字符集中的一個具體字符。
     另外還有一些元字符,雖然它們具有特殊的含義,但是往往在某種特殊情況下,需要將這些元字符當做普通字符使用,我們使用 '/'+元字符,表示轉(zhuǎn)移該元字符,此后該元字符將表示一個普通字符。例如:'//','/^',它們分別表示的是 '/'和 '^',不再具有特殊含義了。下面我們開始逐漸介紹正則表達式語法中的元字符的特殊含義。

     2、字符組匹配單個字符
     我們用一對中括號([.....])表示字符組,整個字符組中會有多個字符位列其中,該字符組表示的含義是:匹配任意一個字符,該字符是位列字符組中的。例如:[single]匹配的是字符's','i','n','g','l','e'中的任意一個字符。以上我們簡單介紹了字符組的基本概念以及它所能匹配的內(nèi)容,其實有時候為了表述連續(xù)的字符,我們會結(jié)合元字符 '-' 一起來操作字符組。例如:[0123456789],匹配的是0到9之間的任意一個數(shù)字,對于這種情況我們可以選擇這樣來簡化操作:[0-9]。其實兩者表述的含義是一樣的,為了簡化起見,如果遇到連續(xù)的字符表述,可以選擇使用元字符來簡化。同樣的還有[a-z],它匹配任意一個小寫字母。對于元字符 '-' 還需要說明一點的是