Это RegEx не работает, когда я использую RegEx Class - PullRequest
0 голосов
/ 29 ноября 2018

Я написал следующий код

policy="Policy: SCW000359-18\nAB & A Abcdef"
p policy[/(?<=Policy:) \w+-\w+/]

Он отлично работает, он печатает следующий результат

" SCW000359-18"

Но мне нужно получить регулярное выражение в виде строкового параметра, поэтомуЯ написал следующий код

p policy[/#{Regexp.quote("(?<=Policy:) \w+-\w+")}/]

Но он возвращает ноль.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 29 ноября 2018

RegExp.quote будет указывать метасимволы в регулярном выражении, поэтому он будет искать буквальную строку: (?<=Policy:) \w+-\w+, которая явно отсутствует в вашей строке поиска Policy: SCW000359-18\nAB & A ….

В этом случаеВы не должны заключать в кавычки строку регулярного выражения и вместо этого использовать:

 Regexp.new('(?<=Policy:) \w+-\w+')

Документы

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