我想匹配像aaaaa,aaad,adjjjjk这样的东西。类似于([a-z])\1+的东西被用来匹配重复的字符,但我无法理解这四个字母。
解决方案:
不知道有限重复语法,你自己的解题技巧应该可以引导你找到这个问题。
([a-z])\1\1\1
显然这不是很好,但是… ..:
- 但是,它是可行的
- 锻炼自己的解题能力
- 可能会让你对概念有更深的理解。
- 在这种情况下,知道了有限重复语法的去掉句法形式
我有一个担心。
"ffffffff".matches("([a-z])\\1{3,}") = true
"fffffasdf".matches("([a-z])\\1{3,}") = false
"asdffffffasdf".matches("([a-z])\\1{3,}") = false
我可以为下面两个人做什么?
问题是,在Java中。matches
需要与整个字符串相匹配;这就好比图案周围被 ^
和 $
.
不幸的是,没有 String.containsPattern(String regex)
但你也可以使用这个技巧将图案包围起来。.*
:
"asdfffffffffasf".matches(".*([a-z])\\1{3,}.*") // true!
// ^^ ^^