问一个关于正则的问题

.Net技术 码拜 9年前 (2015-05-10) 946次浏览 0个评论

为什么使用\b(?<!s)\d+\b无法匹配出g440中的440,而使用(?<!s)\d+\b却可以

15分
\b(?<!s)\d+\b
\b开头,后面不能是s的字符……
\b明显是g开头啊
你把\b去掉就可以了,另外负向零宽断言也不对
还是没搞明白
\b代表前面是要非数字字母下划线,你的440前面g是字母啊,匹配肯定失败
\b代表前面是要非数字字母下划线,那就可以代表空啊,(?<!s)匹配的是非s的字符,那g也完全OK啊,然后是数字,所以还是没搞明白,这块儿还没搞懂啊,
你的400前面是g,不是非数字字母下划线啊,s的不说,的确你去掉第一个\b就能匹配到了啊
貌似要明白了,真的需要从不同的角度来考虑啊,之前我是想的该如何以表达式从事例中取出结果,但是如果反过来,想得到的结果能不能按表达式放回去,就顺了,谢谢楼上了哈
5分
http://blog.csdn.net/lxcnn/article/details/4355364
七楼的东西不错,谢谢

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一个关于正则的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!