如何匹配带引号的字符串后跟大括号中的字符串?

时间:2010-03-01 21:51:39

标签: java regex expression brackets

我需要一个正则表达式来匹配引号中的字符串,然后是一个空格,然后是一个圆括号,然后是一个大括号。

例如,这是我想在Java中匹配的文本:

"'Allo 'Allo!" (1982) {A Barrel Full of Airmen (#7.7)}

正则表达式会是什么?

抱歉,但我真的迷路了。我尝试了很多不同的东西,但现在我很难过。

3 个答案:

答案 0 :(得分:3)

"[^"]*"\s*\([^)]*\)\s*\{[^}]*\}

答案 1 :(得分:3)

这应该这样做:

Pattern p = Pattern.compile("\"(.*?)\"\\s+\\((\\d{4})\\)\\s+\\{(.*?)\\}");
Matcher m = p.matcher("\"'Allo 'Allo!\" (1982) {A Barrel Full of Airmen (#7.7)}");
if (m.find()) {
  System.out.println(m.group());
  System.out.println(m.group(1));
  System.out.println(m.group(2));
  System.out.println(m.group(3));
}

输出:

"'Allo 'Allo!" (1982) {A Barrel Full of Airmen (#7.7)}
'Allo 'Allo!
1982
A Barrel Full of Airmen (#7.7)

答案 2 :(得分:0)

“[^”] +“\ S([^)] +)\ S {[^}] +}