Как сделать регулярное выражение для этого? - PullRequest
0 голосов
/ 15 февраля 2012

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

Function_Name ( 'parameters' ) Function Description

, чтобы я получил имя, параметры и описание.

Ответы [ 3 ]

4 голосов
/ 15 февраля 2012

Предполагая, что параметры разделены , После PCRE регулярное выражение должно работать для вас.

(\w+)\s+\(([^\)]+)\s+(.+)

Подгруппа 1> имя функции
Подгруппа 2> параметры
Подгруппа 3> описание функции

2 голосов
/ 17 февраля 2012

Если вы используете AutoIt, как показывают теги, шаблон должен быть PCRE.

(\w+)\s*\(\s*([^)]+)\s*\)\s*(.+)

Это слегка измененная версия предложенного Шиплу паттерна. У этого есть дополнительные пробелы, таким образом, они не заканчиваются в совпадении, и то же самое касается закрывающих скобок. Также нет необходимости избегать скобок внутри набора символов.

  • ( начать захват группы 1
  • \w+ соответствует одному или нескольким символам слова (буквенно-цифровым и подчеркиванием)
  • ) закрыть группу захвата 1
  • \s* соответствует нулю или более пробельных символов
  • \( соответствует открытому парантезу
  • \s* соответствует нулю или более пробельных символов
  • ( начать захват группы 2
  • [^)]+ соответствует одному или нескольким символам, которые не являются закрывающими скобками
  • ) закрыть группу захвата 2
  • \s* соответствует нулю или более пробельных символов
  • \) соответствует закрывающим скобкам
  • \s* соответствует нулю или более пробельных символов
  • ( начать захват группы 3
  • .+ соответствует одному или нескольким символам, которые не являются пробелами
  • ) группа захвата конца 3
1 голос
/ 15 февраля 2012

Я пишу Python Regex, но я не думаю, что было бы вообще сложно передать его PHP или Perl.

Мое предположение было бы примерно таким, но я не уверен на втором .*, правильно ли он захватит EOL или нет.

(\w+)\s\(\s'\s(.+)\s'\s\)\s(.*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...