Как захватить слова в скобках с помощью регулярных выражений? - PullRequest
0 голосов
/ 22 января 2019

Я хочу найти следующие методы

POST
GET
DELETE

из:

[POST]
[GET]
[DELETE]

Мое текущее регулярное выражение:

[A-Z\w+]

Но оно не возвращает то, чтоЯ нуждаюсь.Что я делаю не так?

Также обратите внимание, что для каждой строки в скобках указывается только одно значение: POST, GET или DELETE.Наконец, эти методы находятся внутри файла журнала, в котором также есть другие символы внутри «[]» (вспомогательный метод url или rails).Мне нужно только получить POST, GET или DELETE.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Используйте группы захвата (), чтобы извлечь значение между экранированными \[ и \],
и цель всего [], который не ^ закрытие \] один или несколько раз +.

\[([^\]]+)\]

https://regex101.com/r/pYkYAp/1

Если вы хотите сосредоточиться на точных словах POST GET и т. Д., Чем использовать опции |:

\[(POST|DELETE|GET)\]

https://regex101.com/r/pYkYAp/2/

Если вы хотите быть менее требовательным и , используйте заглавные буквы условия только чем:

\[([A-Z]+)\]

https://regex101.com/r/pYkYAp/3/

Если вам не нужны захваты и полные совпадения , чем вы могли бы использовать положительный взгляд позади (?<=…) и положительный взгляд вперед (?=…):

(?<=\[)[A-Z]+(?=\])

https://regex101.com/r/pYkYAp/4/

0 голосов
/ 22 января 2019

Я считаю, что это должно сделать это \[([^]]+)\], чтобы захватить все в скобках.\[([POST|GET|PUT|DELETE]]+)\] для захвата определенных предопределенных слов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...