正則表達式/正則表達式語法
外觀
< 正则表达式
本文將從形式語言角度講解正則 形式語言從字符串集合的運算定義「語言」
語言間的運算就是 Σ*冪集上的運算。
Σ是所有合法字符串,Σ*冪集就是這些字符串所能形成的所有組合。
正則的匹配規則就是對應著字符串集合的交集、併集、補集等運算。
連接運算:L1L2 = { xy | x 屬於L1並且 y 屬於L2 }。
冪運算:Ln = L … L (共 n 個 L 連接在一起),L0 = {ε}。
Kleene星號|閉包運算:L* = L0∪L1∪…∪Ln∪…。
正則表達式中一般字母可以直接對目標文本進行匹配,但是還有一些在正則語言中具有特殊含義,需要進行轉義才能匹配,如^{+<[*)>.(|$\?等字符,需要在前面加\才能正確匹配。
[]對內部的單個字符進行匹配,如[abc]可匹配a或b或c,只匹配[]內出現的字母一次。
[^]匹配非[]內部出現的字符。對應補集。如[^abc]可匹配a、b、c之外的一個字母
.匹配除換行符之外的任意一個字符。
\s 匹配空白符,包括換行,\S 匹配非空白符,不包括換行。
還有 * 對應克萊尼星號,匹配前面的子表達式零次或多次。
一串正則與一串正則可通過連接運算連接在一起,匹配更長的一串字符。
{n} n是非負整數。匹配確定的n次。對應冪運算