有人可以告诉我如何在正则表达式中匹配 4 位数字或什么都不匹配吗?我一直在使用 RegexBuddy,到目前为止我已经想出了这个,但是帮助文本是说“或者匹配下面的正则表达式 2 - 如果这个匹配失败,则整个匹配尝试失败”关于管道后的模式。
我希望两者中的任何一个都能提供积极的匹配。
^\d{4}|$
有人可以告诉我如何在正则表达式中匹配 4 位数字或什么都不匹配吗?我一直在使用 RegexBuddy,到目前为止我已经想出了这个,但是帮助文本是说“或者匹配下面的正则表达式 2 - 如果这个匹配失败,则整个匹配尝试失败”关于管道后的模式。
我希望两者中的任何一个都能提供积极的匹配。
^\d{4}|$
4位数或无:
^(?:\d{4}|)$
这与您尝试做的最接近。
我会选择以下稍微短一点的:
^(?:\d{4})?$
^\d{4}|$
该正则表达式意味着:
^\d{4}
或者$
第一个将匹配任何以 4 位数字开头的字符串,而第二个将报告所有内容的匹配(它匹配字符串的结尾,并且由于没有指定字符,它将匹配所有字符串的结尾)。
当您使用组时,您将获得:
要么^(?:\d{4})$
或^(?:)$
(请注意 OR 运算符的“限制”已更改),然后等效于要么^\d{4}$
或^$
我认为你的方法是合理的。您确实需要牢记运算符优先级并使用
^(\d{4}|)$
或者
^\d{4}$|^$
我不认为它是否需要OR
^(\d{4})?$