Как сопоставить все символы (как можно меньше) между двумя строками? - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь написать регулярное выражение, соответствующее комментарию, который начинается с (* и заканчивается при первом появлении *)

(* comment *)

Из других сообщенийпри переполнении стека относительно соответствия между круглыми скобками я собрал следующее регулярное выражение:

\(\*(([^*\)])*)\*\)

Это работает, пока в комментарии нет символов * или ).Однако я хочу разрешить использование этих символов в комментариях, если они не расположены рядом друг с другом.

Ниже приведены действительные комментарии.

(*****)

(*()*)

(*)(*()**)

И заметный недопустимый комментарий:

(*)

Я пробовал некоторые вещи, используя Lookaheads, но безрезультатно.Был бы признателен указатель в правильном направлении.

1 Ответ

0 голосов
/ 24 сентября 2018

Попробуйте с этим

сопоставить любую строку, содержащую открытые скобки, за которыми следуют любые символы любое число раз, за ​​которыми следует закрывающая скобка

\(\*.+\*\)
...