我需要匹配像([\d]|[\d][\d]|[\d][\d][\d])
这样的1,2或3位数字。但我需要两个3位数特定数字的例外350
和380
。是否有可能创建一个正则表达式来实现我的目标?
答案 0 :(得分:4)
这很简单:
\b\d{1,3}\b
(此处需要字边界 - 否则您可能会匹配较长数字的一部分)(?!350|380)
或(?!3[58]0)
,如果您喜欢不太可读的表达式;)将它们结合起来,你就会得到:
\b(?!350|380)\d{1,3}\b
答案 1 :(得分:0)
你可以用{MIN,MAX}说出1到3个相同的角色。这简化了你的正则表达式:
/^\d{1,3}$/
此外,除非您想在123
之类的字符串上匹配12345
,否则您希望在正面和背面添加一些约束,也许不是数字或空格,逗号,在上面,^
和$
确保数字在一条线上都是唯一的。
最后,将最终结果与350和380进行比较可能最简单,而不是尝试制作复杂的RE。它使最终代码更容易阅读和理解。