正則表達式

正則表達式是一種描述字符串匹配的模式,用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。正則表達式

元字符:spa

經常使用元字符 含義
. 匹配除換行符意外的任意字符
\w 匹配字母、數字、下劃線
\W 匹配不是字母、不是數字、不是下劃線
\d 匹配數字至關於[0-9]
\D 匹配不是數字的字符
\s 匹配不可見字符,包括空格,換行符等
\S  匹配可見字符
\b 匹配一個詞的邊界 
\B  匹配一個非單詞邊界
字符串的開始位置
字符串的結束位置 

表示一個字符全集:/\w\W/、/\d\D/、/\s\S/、/./s 等 code

量詞:utf-8

量詞 含義
* 重複任意次數,至關於{0,}
? 重複 0 或 1 次,至關於{0,1}
+ 重複 1 次或更屢次,至關於{1,}
{n} 重複 n 次
{n,} 重複 n 次或大於 n 次
{n,m} 重複 n 到 m 次

分支&字符集unicode

  1. (a|b|c)
  2. [abc] == [a-c]
  3. [^abc] == [^a-c]

分組&引用字符串

/(\d{4})-(\d{2})-(\d{2})/table

/(\d{4})-(\d{2})-\2/--------------------\2至關於(\d{2})test

/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/ ------------分組命名,group.year,group.month,group.day引用

/(?<year>\d{4})-(?<month>\d{2})-\k<month>/-----------------\k<>,命名向後引用命名

 環視

  正向/預測先行/順序/從左到右/pattern的前面位置 負向/回顧後發/逆序/從右到左/pattern的後面位置
確定/正 (?=pattern) (?<=pattern)
否認/負 (?!pattern) (?<!pattern)

 

貪婪&惰性

貪婪——在匹配成功的前提下,儘量多的匹配

惰性——在匹配成功的前提下,儘量少的匹配

/.*bbb/g.test('abbbaabbba1234')

/.*?bbb/g.test('abbbaabbba1234')

修飾符&標誌

g(表示全局(global)模式,即模式將被應用於全部字符串,而非在發現第一個匹配項時當即中止)

i(不區分大小寫)

m(多行模式)

y(y 修飾符的做用與 g 修飾符相似,也是全局匹配,後一次匹配都從上一次匹配成功的下一個位置開始。不一樣之處在於,g 修飾符只要剩餘位置中存在匹配就可,而 y 修飾符確保匹配必須從剩餘的第一個位置開始,這也就是「粘連」的含義)

u(表示按unicode(utf-8)匹配,主要針對多字節好比漢字)

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息