Java正则表达式负向前瞻不能正常工作

时间:2017-01-14 12:11:36

标签: java regex negative-lookahead

我正在努力创建一个正则表达式,用于验证字符串是否以X字符序列(同一个字符)结尾。

例如:x = 5

self._meta.get_field_by_name('marks')[0].has_default()

到目前为止我的正则表达式:1xxxxx - should fail 1xxx - should pass 不起作用。在两种情况下都返回false。

由于

2 个答案:

答案 0 :(得分:0)

您需要添加字符串锚点结束:

1(?!.*(.)\1{4,}$).*$

答案 1 :(得分:0)

这是一个艰难的问题,但如果问题中的条件是正确的,“字符串不会以X字符序列结尾”,这应该是这样的:

python.exe

在非捕获组(?:(.)(?:(?:(?!\1).){1,4})|^(.)\2{0,3})$ - (?:内基本上有两种可能的改动。

最后一部分 - ) - 只测试一个完整的字符串是否只包含一个字符,少于五个字符。

第一部分 - ^(.)\2{0,3} - 通过捕获一个来检查角色的变化,并通过否定的前瞻来确定它与下一个匹配,后者与{{1}匹配并且测试重复次数少于四次

对组外的字符串(.)(?:(?:(?!\1).){1,4})的结尾测试两个更改。

Check it out here at regex101