Как сопоставить строку в кавычках, за которой следует строка в фигурных скобках? - PullRequest
3 голосов
/ 02 марта 2010

Мне нужно выражение регулярного выражения для сопоставления строки в кавычках, а затем пробела, круглой скобки и фигурной скобки.

Например, это текст, который я хочу сопоставить в Java:

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

Каким будет регулярное выражение для этого?

Извините, но я просто потерян. Я пробовал много разных вещей, но теперь я так озадачен.

Ответы [ 3 ]

3 голосов
/ 02 марта 2010

Это должно сделать это:

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)
3 голосов
/ 02 марта 2010

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

0 голосов
/ 02 марта 2010

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

...