这是一个关于正则表达式的简单问题,但我找不到答案.
我想确定一个数字是否按顺序出现两次或四次.我可以使用什么语法?
\d{what goes here?}
我试过\d{2,4},但这个表达式也接受三位数.
rua*_*akh 117
没有具体的语法,但有很多方法可以做到:
(?:\d{4}|\d{2}) <-- alternation: four digits or two
\d{2}(?:\d{2})? <-- two digits, and optionally two more
(?:\d{2}){1,2} <-- two digits, times one or two
Run Code Online (Sandbox Code Playgroud)
(?<!\d)(\d{2}|\d{4})(?!\d)
Run Code Online (Sandbox Code Playgroud)
这是正确的做法。接受的答案是错误的。
它将匹配 3 个数字(或 5 个)。所以这在我看来是错误的。
1) 检查在2、4位数字序列之前或2、4位数字序列之后没有数字。
(<!) 语法是负面的回顾
(?!) 语法是负前瞻。
以上适用于中弦:
如果您的搜索字符串周围有没有内容,您可以使用^,并$开始和字符串锚的结尾:
^\d{4}$|^\d{2}$
Run Code Online (Sandbox Code Playgroud)