有人可以告诉我如何匹配4位数字或在正则表达式中什么都没有?我一直在使用RegexBuddy,到目前为止我已经提出了这个问题,但帮助文本是说'或者匹配下面的正则表达式编号2 - 如果这个匹配尝试失败,则匹配尝试失败,如果匹配'管。正则表达式,数字或空
我想要两者中的任何一个提供积极的匹配。
^\d{4}|$
有人可以告诉我如何匹配4位数字或在正则表达式中什么都没有?我一直在使用RegexBuddy,到目前为止我已经提出了这个问题,但帮助文本是说'或者匹配下面的正则表达式编号2 - 如果这个匹配尝试失败,则匹配尝试失败,如果匹配'管。正则表达式,数字或空
我想要两者中的任何一个提供积极的匹配。
^\d{4}|$
无论是4位或无:
^(?:\d{4}|)$
这是最接近你试图做。
我会去一个稍微短下列操作之一:
^(?:\d{4})?$
^\d{4}|$
这正则表达式指:
^\d{4}
OR $
第只会匹配任何以4位数字开头的字符串报告匹配的所有内容(它匹配字符串的末尾,并且由于没有指定字符,它将匹配所有字符串的末尾)。
当你使用一组,你得到:
无论^(?:\d{4})$
或^(?:)$
(注意,OR运算的“限制”改变),然后将其等同于或者^\d{4}$
或^$
可能值得解释的是'^ \ d {4} | $'会匹配'1234a',因为$不包含在第一个匹配 –
@BobVale我可能还会添加'^ \ d {4} | $'作为一个整体将匹配任何东西,因为'$':) – Jerry
我认为你的方法是合理的。你需要保持运算符的优先考虑,但并请使用
^(\d{4}|)$
或
^\d{4}$|^$
如果需要OR
^(\d{4})?$
上述正则表达式是正确的,我不认为。当然^意味着开始行和$意味着行结束,我不知道是否在你的情况下,将需要。但是'\ d {4} |'确实意味着“4位数或者什么都不是”。 –
实际上匹配是否以4位数开始或什么都不是。所以1234a会匹配 –