學好正則表達式很重要,下面是一些關於正則表達式的基本知識整理
正則表達式知識整理
\ : 轉義字符
^ : 匹配字符串開始位置
$ : 匹配字符串結束位置
* : 匹配前面的表達式任意次
+ : 匹配前面的表達式一次或多次
? : 匹配前面的表達式零次或一次
{n} : 匹配確定的n次,n爲非負整數
{n,} : 匹配至少n次,n爲非負整數
{n,m} : 匹配至少n次,至多m次,n和m均爲非負整數且n<=m
(*,+,{n,m})? : 非貪婪匹配模式,儘可能少的匹配,例如“z+”可以匹配“zzzzz”,“z+?”只匹配到“z”
. : 匹配除\r\n外任何單個字符
(pattern) : 匹配pattern,並獲取匹配,可以獲取匹配到的結果,用\1-\9表示,例如“(o)”匹配到“o”,“(o)\1”匹配到“oo”,“(\d{3})\1”匹配到“123123”,不能匹配到“123456”
(?:pattern) : 非獲取匹配,匹配pattern,但不獲取匹配結果
(?=pattern) : 非獲取匹配,正向肯定預查,在任何匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以後使用,例如“test(?=123)”能匹配“test123”中的“test”,但不能匹配“test456”中的“test”
(?!pattern) : 非獲取匹配,正向否定預查,在任何匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以後使用,例如“test(?=123)”能匹配“test456”中的“test”,但不能匹配“test123”中的“test”
(?<=pattern) : 非獲取匹配,反向肯定預查,和正向肯定預查類似,方向相反,例如“(?<=123)test”能匹配“123test”中的“test”,但不能匹配“456test”中的“test”
(?