我想要匹配的数字包括"-“与非前导零和正常数字没有"-”。因此,我想使用正则表达式。
判罚
应该与0 1 2 3 123 2-3 22-33匹配
和
不应该与0123-123 01234相匹配。
下面的正则表达式几乎可以工作:
\b(0|[1-9][0-9]*\-?[0-9]*)\b数字0 1 2 3 123 2-3 22-33和01234是正确匹配的,但0 123-123不是:它是部分匹配的.https://regex101.com/r/0Po3Ed/1。
发布于 2019-04-19 16:38:56
您可以在正则表达式中使用负面的查找方式:
(?<!-)\b(?:0|[1-9][0-9]*(?:-[0-9]+)?)\b(?<!-)是负查找表达式,如果在数字前面有-,则会使匹配失败。
https://stackoverflow.com/questions/55764925
复制相似问题