Ano*_*ser 13 java regex character
我想匹配像aaaa,aaaad,adjjjjk这样的东西.类似于([az])\ 1+的东西用于匹配重复的字符,但我无法用四个字母来计算.
Mar*_*ers 21
您希望匹配单个字符,然后该字符重复三次:
([a-z])\1{3}
Run Code Online (Sandbox Code Playgroud)
注意:在Java中,您需要转义正则表达式中的反斜杠.
更新:之所以没有做你想要的是因为你使用的方法matches要求字符串与正则表达式完全匹配,而不仅仅是它包含正则表达式.要检查遏制,您应该使用Matcher该类.这是一些示例代码:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
class Program
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("([a-z])\\1{3}");
Matcher matcher = pattern.matcher("asdffffffasdf");
System.out.println(matcher.find());
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
true
Run Code Online (Sandbox Code Playgroud)
pol*_*nts 17
不知道有限重复语法,你自己解决问题的技巧应该引导你:
([a-z])\1\1\1
Run Code Online (Sandbox Code Playgroud)
显然它并不漂亮,但是:
嘿家伙很酷的答案,但我有一个问题
"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!
// ^^ ^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27752 次 |
| 最近记录: |