假设我有以下字符串:
mya!phaNum3rics-456-456-lll
zzzz-6a6-6a6-lll
vvvv-4-4-lll这些被认为是匹配的,因为“第二”和“第三”组重复,最后一组以lll结尾。什么regex将允许在第二个和第三个“组”中的任何字符序列。
如果以下内容也被认为是匹配的,那么有多大的不同?
zasdfdf-zadezz-6a6-6a6-lll“第三组到最后一组”以“第二组到最后一组”重复,以“组”lll结尾。
发布于 2016-10-20 16:51:06
你需要
-([^-]+)-\1-lll$- -a连字符([^-]+) -第1组捕获-以外的一个或多个符号- -a连字符\1 --捕获到第1组的文本的反向引用-lll -文字字符的子字符串$ -字符串的末端。Java演示
String str = "mya!phaNum3rics-456-456-lll";
Pattern ptrn = Pattern.compile("-([^-]+)-\\1-lll$");
Matcher matcher = ptrn.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(0) + " matched!");
}用于.matches的同一正则表达式的一个变体
if (str.matches(".*-([^-]+)-\\1-lll")) {
System.out.println(str + " matched!");
}https://stackoverflow.com/questions/40138734
复制相似问题