我有一个Regex模式,匹配我需要解析的数据,因为我需要它。不幸的是,使用split方法,它会删除所需的数据并将垃圾传递给我。通常情况下,我会尝试另一个正则表达式,但它并不像听起来那么简单。它必须是Java,因为这部分是更大的程序/包的一部分。
模式p = Pattern.compile(“/ ^ \ {\?| \:| \ = | \ ||(\ - ) 的ConfigurationFile)|(isUsingRESTDescription)|(\ restURL) =(\ S | \ W | \ | \ - | \:| \ / | \; | \ [| \] | \'| \})< / EM> \ R / G“);
这是我正在解析的字符串(每个部分后都有回车符):
上面给出了与我想要的相反的东西。
你认为有人会遇到这个问题。帮助将不胜感激:)。
答案 0 :(得分:3)
使用捕获组。您可以在Pattern的javadoc中了解它们。
一个例子:
Pattern p = Pattern.compile("[^/]*/([^/]*)/.*");
Matcher m = p.matcher("foo/bar/input");
if (m.find()) {
String captured = m.group(1); // This equals "bar"
String matched = m.group(0); // This equals "foo/bar/input"
}
位于Pattern
括号内的任何内容都是一个捕获组。 Matcher
根据遇到开括号的时间对捕获组编制索引。组0始终是整个匹配区域。