Указание, что часть регулярного выражения не должна содержать другое регулярное выражение - PullRequest
0 голосов
/ 16 января 2012

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

Какое регулярное выражение (приведенное здесь в синтаксисе стиля Javascript) будет соответствовать регулярному выражению /(artwork|sheep|cattle|book|literature)(s)/i, но не содержит совпадений /(sheep|cattle|artwork|literature)(s)/?

1 Ответ

1 голос
/ 16 января 2012

если /books/ не ответ, то, возможно, попробуйте с отрицательным взглядом вперед .. как это

=> /(?!(?:sheep|cattle|artwork|literature)(?:s))(artwork|sheep|cattle|book|literature)(s)/
>> re =~ 'books'
=> 0
>> re =~ 'bookxs'
=> nil
>> re =~ 'sheep'
=> nil
>> re =~ 'cattle'
=> nil
>> re =~ 'test'
=> nil
...