Java正则表达式<;省略号>;
我正在阅读一些旧代码,这些代码似乎旨在删除目录中的一系列句点(……)。它利用java正则表达式来实现这一点。这是使用的代码Java正则表达式<;省略号>;,java,regex,Java,Regex,我正在阅读一些旧代码,这些代码似乎旨在删除目录中的一系列句点(……)。它利用java正则表达式来实现这一点。这是使用的代码 input = input.replaceAll( ".*<elipses>.*", "" ); input=input.replaceAll(“.*.*”,”); 但是,我没有看到提到带有“'s”的正则表达式,除了这里: 特殊构造(命名捕获和非捕获) (?X)X,作为命名的捕获组 () 是什么意思?看起来像Java 7命名组,语法似乎不正确 正确的语法如下
input = input.replaceAll( ".*<elipses>.*", "" );
input=input.replaceAll(“.*.*”,”);
但是,我没有看到提到带有“'s”的正则表达式,除了这里:
特殊构造(命名捕获和非捕获)(?X)
X,作为命名的捕获组
()
是什么意思?看起来像Java 7命名组,语法似乎不正确
正确的语法如下所示:
// | named group "stuff" matches 0 or more characters
// | | named group "ellipses" 3 consecutive dots
// | | | non grouped stuff
Pattern p = Pattern.compile("(?<stuff>.*)(?<ellipses>\\.\\.\\.).*");
String input = "blah ... blah";
Matcher m = p.matcher(input);
if (m.find()) {
// printing back reference to named group "stuff"
System.out.println(m.group("stuff"));
// printing back reference to named group "ellipses"
System.out.println(m.group("ellipses"));
}
否则,您的模式
正试图实际匹配包含
的标记,该标记前面有任意数量的字符,后面跟着相同的字符
一些对Java 7命名组的API引用您确定文本中没有字面上的
*
是贪婪的,所以我不知道
如何与..
匹配。这是复制和粘贴的文字代码,而不是文档中的内容吗?上面的代码是旧代码中的代码。我只是想了解他们最初想做什么。这不是Java文档中的内容。很酷,您可以这样做。
blah
...