соответствие строке, которая не содержит определенный текст с регулярными выражениями

Если вы хотите добавить методы к любому классу (в данном случае String), без необходимости его исправления, вам следует рассмотреть возможность использования уточнений .

module StringRefinements 
  refine String do
    def already_taken?
      puts "yes!"
    end
  end
end

# in another file...
using StringRefinements
"Charlotte".already_taken?

Метод already_taken? будет доступен только в области, которая вызывает using StringRefinements, и больше нигде.

10
задан Wiktor Stribiżew 8 October 2019 в 23:36
поделиться

2 ответа

Вам нужно отрицательное предварительное утверждение - что-то вроде этого:

/^one two(?!.*three)/m

Вот учебное руководство на lookahead/lookbehind утверждениях

Примечание: Я добавил 'm' модификатор так, чтобы ^ соответствовал запуску строки, а не запуску целой строки.

14
ответ дан 3 December 2019 в 20:06
поделиться
^one two(?!.*three)
5
ответ дан 3 December 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: