Регулярное выражение, которое исключит группу захвата
Я пишу регулярное выражение, которое мне 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 со словом "подробности"?
- Почему в "[Gg] et?" Стоит вопросительный знак? `?` Просто делает `t` необ ...
Ответ #1
Ответ на вопрос: Регулярное выражение, которое исключит группу захвата
Что-то вроде этого может сработать для вас:
\b[Gg]et(?!\w*[Dd]etails)\w+s\b
9X_regular-expressions
- Отрицательный просмотр вперед `(?! ...)` гарантирует, что 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»)
-
1
-
11
-
4
-
5
-
5
-
19
-
21
-
7
-
6
-
23
-
8
-
3
-
5
-
3
-
86
-
13
-
21
-
7
-
7
-
11
-
10
-
5
-
12
-
4
-
23
-
7
-
3
-
18
-
12
-
6
-
5
-
35
-
5
-
10
-
15
-
17
-
9
-
12
-
7
-
6
-
5
-
11
-
21
-
39
-
7
-
9
-
26
-
7
-
7
-
21