正則表達(dá)式描述的是一種規(guī)則,符合這種限定規(guī)則的字符串我們認(rèn)為它某種滿足條件的,是我們所需的。在正則表達(dá)式中,主要有兩種字符,一種描述的是普通的字符,另一種描述的是元字符。其中元字符是整個(gè)正則表達(dá)式的核心,并由它完成規(guī)則的制定工作。本篇文章主要從Java這門程序設(shè)計(jì)語言的角度理解正則表達(dá)式的應(yīng)用,主要涉及以下內(nèi)容:
基本正則表達(dá)式的理論基礎(chǔ)
Java中用于正則表達(dá)式匹配的類
幾種常用的正則表達(dá)式使用實(shí)例
一、正則表達(dá)式的理論基礎(chǔ)
1、普通字符的表示
我們說正則表達(dá)式主要由普通字符和元字符組成,那么我們首先先看看普通字符該如何表示。大部分普通字符由字符本身即可表示,例如:'s','i','n','g','l','e'等。除此之外,也有一些特殊的表示方式。
以/0開頭,后面緊跟1-3位數(shù)字,表示的是一個(gè)八進(jìn)制數(shù)。這個(gè)數(shù)的十進(jìn)制值對(duì)應(yīng)于ASCII編碼中的相應(yīng)字符。
以/x或者/X開頭,后面緊跟兩位字符,表示的是一個(gè)十六進(jìn)制的數(shù)。該數(shù)的十進(jìn)制的值對(duì)應(yīng)于ASCII編碼中相應(yīng)的字符。
以/u開頭,后面緊跟四位字符,表示一個(gè)Unicode編號(hào)。該編號(hào)對(duì)應(yīng)于Unicode字符集中的一個(gè)具體字符。
另外還有一些元字符,雖然它們具有特殊的含義,但是往往在某種特殊情況下,需要將這些元字符當(dāng)做普通字符使用,我們使用 '/'+元字符,表示轉(zhuǎn)移該元字符,此后該元字符將表示一個(gè)普通字符。例如:'//','/^',它們分別表示的是 '/'和 '^',不再具有特殊含義了。下面我們開始逐漸介紹正則表達(dá)式語法中的元字符的特殊含義。
2、字符組匹配單個(gè)字符
我們用一對(duì)中括號(hào)([.....])表示字符組,整個(gè)字符組中會(huì)有多個(gè)字符位列其中,該字符組表示的含義是:匹配任意一個(gè)字符,該字符是位列字符組中的。例如:[single]匹配的是字符's','i','n','g','l','e'中的任意一個(gè)字符。以上我們簡(jiǎn)單介紹了字符組的基本概念以及它所能匹配的內(nèi)容,其實(shí)有時(shí)候?yàn)榱吮硎鲞B續(xù)的字符,我們會(huì)結(jié)合元字符 '-' 一起來操作字符組。例如:[0123456789],匹配的是0到9之間的任意一個(gè)數(shù)字,對(duì)于這種情況我們可以選擇這樣來簡(jiǎn)化操作:[0-9]。其實(shí)兩者表述的含義是一樣的,為了簡(jiǎn)化起見,如果遇到連續(xù)的字符表述,可以選擇使用元字符來簡(jiǎn)化。同樣的還有[a-z],它匹配任意一個(gè)小寫字母。對(duì)于元字符 '-' 還需要說明一點(diǎn)的是