基本定义
菜鸟教程
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’
-^([^,]+)
取反,即左侧全部
-[^,]+$
取反,即右侧全部