这是一个关于正则表达式的简单问题,但我找不到答案。
我想确定一个数字是否按顺序出现两个或四个次。我可以使用什么语法?
\d{what goes here?}
我试过了\d{2,4}
,但这个表达式也接受了三位数。
答案 0 :(得分:104)
没有具体的语法,但有很多方法可以做到:
(?:\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
答案 1 :(得分:3)
static int
这是正确的方法。接受的答案是错误的。
它将匹配3个数字(或5个数字)。 https://docs.groovy-lang.org/latest/html/documentation/sql-userguide.html#_stored_procedures。
1)检查2位数或4位数序列之前或2位数或4位数序列之后没有数字。
static int
的语法为否定式
(?<!\d)(\d{2}|\d{4})(?!\d)
语法为负先行。
以上内容适用于中间字符串:
如果搜索字符串周围没有内容,则可以使用字符串锚点的(<!)
和(?!)
开头和结尾:
^