我需要找到一个带有可选的前导零但不以其他数字开头或结尾的特定数字。
示例行:
"123456, 123456A, A123456, A123456A, 0123456, 9123456, 1234567, ABCD0000123456 or /123456"
我当前正在使用的正则表达式:
"0*?[^1-9]123456(?!\d)"
当前匹配项:
123456
A123456
A123456
0123456
0000123456
/123456
如何避免123456
,A123456
和/123456
匹配(要从中仅匹配123456
)。 A
或ABCD
可以是数字以外的任何其他字符!
所需匹配项:
123456
123456
123456
123456
0123456
0000123456
123456
最合适的正则表达式是什么?
预先感谢
答案 0 :(得分:2)
您需要删除[^1-9]
模式,并在(?<!\d)
模式之前使用0*
否定性回溯:
(?<!\d)0*123456(?!\d)
请参见regex demo和正则表达式图:
详细信息
(?<!\d)
-不允许在左边立即输入数字0*
-零个或多个0
数字123456
-特定的数字字符串(?!\d)
-当前位置右边不允许有数字。