Я разрабатываю алгоритм для анализа числа из ряда коротких строк. Эти строки несколько регулярны, но есть несколько различных общих форм и несколько исключений. Я пытаюсь создать набор регулярных выражений, которые будут обрабатывать различные формы и исключения; Я буду применять их один за другим, чтобы посмотреть, получу ли я совпадение.
Одна из этих форм выглядит примерно так:
X (Y) Z
Куда:
-
X
- это число, которое я хочу захватить. -
Z
является статическим, предопределенным текстом. это в основном, как я определяю, применима ли эта конкретная форма или нет -
Y
- строка неизвестной длины и содержания, заключенная в круглые скобки.
Также: Y
необязательно; это не всегда появляется в строке с Z
и X
Итак, я хочу иметь возможность извлечь числа из всех этих строк:
-
10 Z
-
20 (foo) Z
-
30 (bar) Z
Прямо сейчас у меня есть регулярное выражение, которое захватит первое:
([0-9]+) +Z
Моя проблема в том, что я не знаю, как создать регулярное выражение, которое будет соответствовать серии символов, если и только если они заключены в круглые скобки. Может ли это быть сделано в одном регулярном выражении?