我想提取分隔符(在这种情况下是括号内)的字符串发生但不是在引号(单或双)内的字符串发生。以下是我已经尝试 - 这个表达式取括号内所有出现的,这也用引号(我不想引号内的)正则表达式来提取分隔符内的字符串
public class RegexMain {
static final String PATTERN = "\\(([^)]+)\\)";
static final Pattern CONTENT = Pattern.compile(PATTERN);
/**
* @param args
*/
public static void main(String[] args) {
String testString = "Rhyme (Jack) and (Jill) went up the hill on \"(Peter's)\" request.";
Matcher match = CONTENT.matcher(testString);
while(match.find()) {
System.out.println(match.group()); // prints Jack, Jill and Peter's
}
}
}
如果我是你,我会首先用空字符串替换引用的部分,然后查找匹配的组。这不是一种选择吗? – inhan