正则 常用实例

基本定义

菜鸟教程
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’
    - ^([^,]+)取反,即左侧全部
    - [^,]+$取反,即右侧全部
    匹配两侧部分
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章