问一个关于正则的问题

myxxzly 2015-05-04 10:22:48
为什么使用\b(?<!s)\d+\b无法匹配出g440中的440,而使用(?<!s)\d+\b却可以
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
myxxzly 2015-05-05
  • 打赏
  • 举报
回复
\b代表前面是要非数字字母下划线,那就可以代表空啊,(?<!s)匹配的是非s的字符,那g也完全OK啊,然后是数字,所以还是没搞明白,这块儿还没搞懂啊,
myxxzly 2015-05-05
  • 打赏
  • 举报
回复
七楼的东西不错,谢谢
myxxzly 2015-05-05
  • 打赏
  • 举报
回复
貌似要明白了,真的需要从不同的角度来考虑啊,之前我是想的该如何以表达式从事例中取出结果,但是如果反过来,想得到的结果能不能按表达式放回去,就顺了,谢谢楼上了哈
  • 打赏
  • 举报
回复
你的400前面是g,不是非数字字母下划线啊,s的不说,的确你去掉第一个\b就能匹配到了啊
  • 打赏
  • 举报
回复
\b代表前面是要非数字字母下划线,你的440前面g是字母啊,匹配肯定失败
  • 打赏
  • 举报
回复
\b(?<!s)\d+\b \b开头,后面不能是s的字符…… \b明显是g开头啊 你把\b去掉就可以了,另外负向零宽断言也不对

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧