正则表达式怎么完全匹配类似'A00A'?
4位字符的范围如下:第一位字符范围:[a-z][A-Z]第二位字符范围:[0-9][a-z][A-Z]第三位字符范围:[0-9][a-z][A-Z]第四位字符范围:[0-...
4位字符的范围如下:
第一位字符范围:[a-z] [A-Z]
第二位字符范围:[0-9] [a-z] [A-Z]
第三位字符范围:[0-9] [a-z] [A-Z]
第四位字符范围:[0-9] [a-z] [A-Z]
测试数据:
Save('Hello', 'Robf', 1,"ABCD",‘2048’,1234,'#A00',"感谢您的回答,祝您生活美满幸福")
结果需求:
Robf 展开
第一位字符范围:[a-z] [A-Z]
第二位字符范围:[0-9] [a-z] [A-Z]
第三位字符范围:[0-9] [a-z] [A-Z]
第四位字符范围:[0-9] [a-z] [A-Z]
测试数据:
Save('Hello', 'Robf', 1,"ABCD",‘2048’,1234,'#A00',"感谢您的回答,祝您生活美满幸福")
结果需求:
Robf 展开
1个回答
展开全部
很高兴回答你的问题,有什么不正确的地方,请指正。
第1位是:
[a-zA-Z]
第2至第4位是:
[0-9a-zA-Z]{3}
正则中,\b或\<\>为定界符,但是有些命令并不支持。
如:
推荐使用perl,它对正则元字符是完全支持的。
但是这样的结果将匹配“Save”,“Robf”,“ABCD”
分析三者不同,结合题目,只匹配单引号。
使用零宽断言,答案为:
(?<=')[a-zA-Z][0-9a-zA-Z]{3}(?=')
#此处并没有对单引号进行转义,如果放在脚本中,需要进行转义。
(?<='\'')[a-zA-Z][0-9a-zA-Z]{3}(?='\'')
注释:
(?<=xxxx) #放在匹配的左边
(?=xxxx) #放在匹配的右边
Linux grep结果显示:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询