文章目录
基本定义基础全匹配匹配左侧部分匹配右侧部分匹配中间部分 - 删除匹配两侧部分
基本定义
菜鸟教程 https://www.runoob.com/regexp/regexp-syntax.html 测试 http://tool.chinaz.com/regex https://tool.oschina.net/regex/#
基础
正则表达式的
() [] {} 有着不同的意思。
() 是为了提取匹配字符串的,表达式中有几个
()就有几个相应的匹配字符串
(\s
*)表示连续空格的字符串
[] 是定义匹配的字符范围。比如
[a
-zA
-Z0
-9]表示相应位置的字符要匹配英文字符和数字。
[\s
*表示空格或者
*号
]
{}一般是用来匹配的长度。比如\s
{3}表示匹配三个空格,\s
[1,3]表示匹配
1到
3个空格
(0-9)匹配
'0-9'本身。
[0-9]*匹配数字(注意后面有
*,可以为空)
[0-9]+匹配数字
(注意后面有
+,不可以为空
),
{0-9}写法是错误的
[0-9]{0,9}表示长度为
0到
9的数字字符串。
全匹配
例子: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’ - ^([^,]+)取反,即左侧全部 - [^,]+$取反,即右侧全部