正則 常用實例

基本定義

菜鳥教程
https://www.runoob.com/regexp/regexp-syntax.html
測試
https://tool.oschina.net/regex/#

基礎
正則表達式的() [] {} 有着不同的意思。

() 是爲了提取匹配字符串的,表達式中有幾個()就有幾個相應的匹配字符串

(\s*)表示連續空格的字符串

[] 是定義匹配的字符範圍。比如[a-zA-Z0-9]表示相應位置的字符要匹配英文字符和數字。[\s*表示空格或者*]

{}一般是用來匹配的長度。比如\s{3}表示匹配三個空格,\s[1,3]表示匹配13個空格

(0-9)匹配'0-9'本身。[0-9]*匹配數字(注意後面有*,可以爲空)[0-9]+匹配數字(注意後面有+,不可以爲空){0-9}寫法是錯誤的

[0-9]{0,9}表示長度爲09的數字字符串。
全匹配
  • 例子:sign-apply-developer, 申請簽約開發者, 0
  • 表達式:[a-z|-]+(,.*,).*[0-9]
  • 説明:
    • [a-z|-] 匹配sign-apply-developer 字母a到z 或 ‘-’;
    • ‘+’匹配多個,即匹配個數>1
    • (,.*,) 貪婪模式 匹配‘,’中間部分,‘()’匹配本身
    • .*匹配後續所有
    • [0-9] 匹配0到9數字 PS:等價於\d

全匹配

匹配左側部分
  • 表達式:^[^,]+
  • 例子:sign-apply-developer, 申請簽約開發者, 0
  • 說明:
    - [^,] 找到’,'以外部分
    - [^,]+匹配到3處
    三處
    - ^[^,]+左側第一個
    在這裏插入圖片描述
匹配右側部分
  • 表達式:[,]\s+\d+
  • 例子:sign-apply-developer, 申請簽約開發者, 0
  • 說明:
    - [,]找到兩個,
    - \s\d匹配右邊有一個空格和一個整形
    - +匹配數量>1 兼容多空格,多數字情況 如:, 0000000
  • 優化:[,]\s+\d.*
    匹配右側部分
匹配中間部分 - 刪除
  • 表達式:,.*,
  • 例子:sign-apply-developer, 申請簽約開發者, 0
  • 說明:替換兩個,中間部分爲空 sign-apply-developer 0
    匹配中間部分
匹配兩側部分
  • 表達式:^[^,]+|[^,]+$
  • 例子:sign-apply-developer, 申請簽約開發者, 0
  • 說明:
    - [^,] 找到‘,’以外部分
    - ^[^,] 最左側 即’s’
    - ^([^,]+)取反,即左側全部
    - [^,]+$取反,即右側全部
    匹配兩側部分
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章