Java正则表达式负前瞻未正常工作
我正在努力创建一个正则表达式来验证一个字符串是否以X个字符(同一个)的序列结尾
例如:x=5
1xxxxx - should fail
1xxx - should pass
到目前为止,我的正则表达式:1(?!\\w\1{4})
不起作用。在这两种情况下都返回false
谢谢
你可以在下面搜索框中键入要查询的问题!
我正在努力创建一个正则表达式来验证一个字符串是否以X个字符(同一个)的序列结尾
例如:x=5
1xxxxx - should fail
1xxx - should pass
到目前为止,我的正则表达式:1(?!\\w\1{4})
不起作用。在这两种情况下都返回false
谢谢
# 1 楼答案
您需要添加字符串结束锚定:
# 2 楼答案
这是一个困难的问题,但如果问题中的条件是正确的,“字符串不以X字符序列结尾”,这应该可以做到:
基本上,在一个非捕获组内有两种可能的改变
(?:
-)
最后一部分-
^(.)\2{0,3}
只是测试它是否是一个完整的字符串,只包含一个字符,长度小于五个字符第一部分-
(.)(?:(?:(?!\1).){1,4})
通过捕获一个字符,并通过反向前瞻确保它与下一个字符不匹配来检查字符的变化,下一个字符与.
匹配,并测试重复次数少于四次这两种改变都是针对组外的字符串结尾
$
进行测试的Check it out here at regex101