Регулярное выражение, которое исключит группу захвата

Я пишу регулярное выражение, которое мне 9X_regularexpression нужно для перехвата множественных строк, начинающихся 9X_regular-expression с "get". Например, getContacts и getBuildings должны соответствовать 9X_regex-php регулярному выражению. Однако бывают случаи, когда 9X_regular-expressions текст может быть равен getDetails или get**Details. Я 9X_regexes не хочу, чтобы регулярное выражение включало 9X_regular-expression их.

Я могу придумать регулярное выражение, которое 9X_perlre включает соответствующую группу «Подробности», но 9X_regexp я хочу исключить эту группу захвата, а не 9X_regular-expression включать ее.

[Gg]et?\w+([Dd]etail)s 

Я не очень силен в регулярных 9X_regexes выражениях, но вот мое понимание того, что 9X_perlre я написал:

соответствует «g» или «G», за 9X_regular-expressions которым следует «et», затем, необязательно, любой 9X_apache-regexp символ слова, затем соответствующая группа, за 9X_regexes которой следует «s».

Как исключить результаты 9X_regexes со словом "подробности"?

15
1

  • Почему в "[Gg] et?" Стоит вопросительный знак? `?` Просто делает `t` необ ...
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: Регулярное выражение, которое исключит группу захвата

Что-то вроде этого может сработать для вас:

\b[Gg]et(?!\w*[Dd]etails)\w+s\b 

9X_regular-expressions

14
1

  • Отрицательный просмотр вперед `(?! ...)` гарантирует, что Details не является частью этого совпадения, `\ b`s используются для привязки совпадения в начале / конце слов, иначе` G ...

Ответ #2

Ответ на вопрос: Регулярное выражение, которое исключит группу захвата

Я полагаю, вы ищете отрицательный прогноз 9X_regex нулевой ширины ...

http://www.regular-expressions.info/lookaround.html

[Gg]et(?![Dd]etail)\w+s 

Предполагая, что вы хотите 9X_regular-expressions исключить «Get Details» и «Get Info», но 9X_regexp принять «Get Pages» и «Get MyDetails» (N.B. завершающие 9X_regular-expression s в исходном регулярном выражении уже исключают 9X_apache-regexp «Get Info»)

7
0