[英]Java regex negative lookahead not working properly
我正在努力創建一個正則表達式來驗證字符串是否以X字符序列(同一個字符)結尾。
例如:x = 5
1xxxxx - should fail
1xxx - should pass
到目前為止我的正則表達式: 1(?!\\\\w\\1{4})
不起作用。 兩種情況都返回false。
謝謝
您需要添加字符串錨點結束:
1(?!.*(.)\1{4,}$).*$
這是一個艱難的,但如果你的問題中的條件是正確的,“字符串不以X字符序列結束”,這應該這樣做:
(?:(.)(?:(?:(?!\1).){1,4})|^(.)\2{0,3})$
它基本上是非捕獲組內的兩種可能的改變(?:
- )
。
最后一部分 - ^(.)\\2{0,3}
- 只測試它是否只包含一個字符,小於五個字符的完整字符串。
第一部分 - (.)(?:(?:(?!\\1).){1,4})
- 通過捕獲一個來檢查角色的變化,並通過負面的預測來確定它沒有t匹配下一個匹配的.
並測試重復次數少於四次
兩個變更都在組外的字符串$
結尾進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.