Как объединить два регулярных выражения в Ruby? - PullRequest
2 голосов
/ 05 апреля 2019

Что является альтернативой чему-то вроде

str = "[string] somethind else"
str[/\[\w+\]/][/\w+/] 

Всякий раз, когда я хочу просто "строка", а не "[строка]".

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Вы можете использовать

str[/\[(\w+)\]/, 1]

См. Демонстрация Ruby .

В регулярном выражении /\[(\w+)\]/ вы найдете первое совпадение [, за которым следуют символы 1+ слов, захваченные в группу 1, а затем аргумент ] и 1 делает вывод только значение первой группы захвата.

0 голосов
/ 06 апреля 2019
str = "[string] something else"

str[/(?<=\[)\w+(?=\])/]
  #=> "string"

(?<=\[) ((?=\])), положительный взгляд сзади ( положительный взгляд вперед ) требует, чтобы совпадению предшествовало (следовало) сразу на открытой (закрытой) скобке, но скобка не является частью возвращенного совпадения.

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