标签: java regex
我正在尝试编写一个正则表达式来匹配包含四个连续数字后跟字符p的字符串。
p
这就是我所拥有的:\d\d\d\d
\d\d\d\d
但我不希望正则表达式匹配1111p之类的字符串。我怎样才能提高我的正则表达式?
1111p
答案 0 :(得分:2)
lookahead的存在需要p否定,即缺少p
lookahead
正则表达式: \d{4}(?!p)
\d{4}(?!p)
Regex101 Demo
答案 1 :(得分:0)
/(\d{4})(?!p)/将捕获所有未跟随字符p的四位数字组。 {}是quantifier,可让您指定最小,最大或确切的重复次数,而(?!)是一个名为“negative lookahead”的特殊非捕获组。
/(\d{4})(?!p)/
{}
(?!)