Положительный взгляд - PullRequest
       0

Положительный взгляд

0 голосов
/ 27 февраля 2020

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

Function("Hello World")
Function("Hello World", "Max 10 Chars")

Я пытался использовать положительный просмотр , но не могу понять, где я иду не так, ссылка ниже работает без просмотра

https://regexr.com/4v7so

При изменении шаблона на Function\("([\w\s\d]+)"(?<=[\,\s"]+)([\w\s\d]+")\) это перестает работать,

Я довольно новичок в этой части RegEx, любые выводы будут полезны

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Этот RegEx сопоставляет любую функцию с именем 'Function' и любым количеством строковых литеральных параметров:

Function\("([\w\s\d]+)"(\s*\,\s*"[\w\s\d]+")*\)

Эта функция будет соответствовать только функциям с именем 'Function' и одним или двумя строковыми литеральными параметрами:

Function\("([\w\s\d]+)"(\s*\,\s*"[\w\s\d]+")?\)
0 голосов
/ 27 февраля 2020

Попробуйте

Function\("([\w\s\d]+)"(?:\s*,\s*"([\w\s\d]+)")*\)

Поскольку для любого дополнительного аргумента функции в качестве разделителя используется символ ,, вы можете использовать регулярное выражение группы без захвата (?: )*, чтобы захватить 0-n случаев такого шаблон.

...