Мне нужно разобрать аннотации методов, написанных на PHP. Я написал регулярное выражение (см. упрощенный пример ниже) для их поиска, но оно не работает должным образом. Вместо сопоставления самой короткой части текста между /**
и */
он соответствует максимальному объему исходного кода (предыдущие методы с аннотациями). Я уверен, что использую правильную .*?
не жадную версию *
, и я не нашел доказательств того, что DOTALL отключает ее. Подскажите, где может быть проблема? Спасибо.
p = re.compile(r'(?:/\*\*.*?\*/)\n\s*public', re.DOTALL)
methods = p.findall(text)
re.DOTALL
заставляет его снова работать? - person Matthew   schedule 31.07.2014text
в строку в тройных кавычках, чтобы мы могли скопировать и вставить пример в сеанс интерпретатора и сами видите проблему? (Убедитесь, что в примере данных отображается проблема, если вы копируете и вставляете пример в сеанс интерпретатора.) - person user2357112 supports Monica   schedule 31.07.2014re.DOTALL
вообще не получится - ничего не нашел. - person user3853423   schedule 31.07.2014\s
также соответствует символу\n
. - person Avinash Raj   schedule 31.07.2014/* *
содержит пробел. - person Avinash Raj   schedule 31.07.2014