Смотри сзади и вперед, PRCE - PullRequest
0 голосов
/ 09 октября 2018

пожалуйста, у меня есть такой пример текста:

neco nechcem neco nechcem neco chcem y neco nechcem

и я хочу захватить текст:

"chcem"

(то же самое, что и nechcem, но для этого примера я переименую его)

У меня вопрос к этому регулярному выражению:

(chcem)(?:(?<!neco).)*?y

Есть ли другой способ написать это?Потому что, когда я использую это регулярное выражение для большого текста, я получаю катастрофический возврат?

1 Ответ

0 голосов
/ 10 октября 2018

Слово "chcem", которое вы пытаетесь отразить, может быть сделано с помощью границы слова \ b.Проверьте это решение Perl

$ export str="neco nechcem neco nechcem neco chcem y neco nechcem"

$ perl -e 'BEGIN { $x=$ENV{str}; while($x=~/(\bchcem\b)/g) { print "$1\n" } } '
chcem

$ export str="neco nechcem neco nechcem neco chcem y neco nechcem dasd chcem ab"

$ perl -e 'BEGIN { $x=$ENV{str}; while($x=~/(\bchcem\b)/g) { print "$1\n" } } '
chcem
chcem

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