正則表達式有兩種基本的操作,分別是匹配和替換。
匹配就是在一個文本字符串中搜索匹配一特殊表達式;
替換就是在一個字符串中查找并替換匹配一特殊表達式的字符串。
1.基本元素
正則表達式定義了一系列的特殊字符元素以執行匹配動作。
正則表達式基本字符
字符 | 描述 |
---|---|
text | 匹配text字符串 |
. | 匹配除換行符之外的任意一個單個字符 |
^ | 匹配一個字符串的開頭 |
$ | 匹配一個字符串的末尾 |
在正則表達式中,我們還可用匹配限定符來約束匹配的次數。
匹配限定符
最大匹配 | 最小匹配 | 描述 |
---|---|---|
* | * | 重復匹配前表達式零次或多次 |
+ | + | 重復匹配前表達式一次或多次 |
重復匹配前表達式零次或一次 | ||
{m} | {m} | 精確重復匹配前表達式m次 |
{m,} | {m,} | 至少重復匹配前表達式m次 |
{m,n} | {m,n} | 至少重復匹配前表達式m次,至多重復匹配前表達式n次 |
據上所述,".*"為最大匹配,能匹配源字符串所有能匹配的字符串。".* "為最小匹配,只匹配第一次出現的字符串。如:d.*g能匹配任意以d開頭,以g結尾的字符串,如"debug"和"debugging",甚至"dog is walking"。而d.* g只能匹配"debug",在"dog is walking"字符串中,則只匹配到"dog "。
在一些更復雜的匹配中,我們可用到組和運算符。
組和運算符
組 | 描述 |
---|---|
[...] | 匹配集合內的字符,如[a-z],[1-9]或[,./;'] |
[^...] | 匹配除集合外的所有字符,相當于取反操作 |
A|B | 匹配表達式A或B,相當于OR操作 |
(...) | 表達式分組,每對括號為一組,如([a-b]+)([A-Z]+)([1-9]+) |
/number | 匹配在number表達式組內的文本 |
新聞熱點
疑難解答