#ruby #regex
#ruby #регулярное выражение
Вопрос:
Пока это мой код:
def alternate_words(string)
string.gsub(/[p{P}]/, "")
end
Я ищу способ добавления исключений к моим регулярным выражениям. Возможно ли это или я должен перечислить их все?
Ответ №1:
string = "jack. o'reilly? mike??!?"
puts string.gsub(/[p{P}amp;amp;[^']]/, '')
# => jack o'reilly mike
Символьный класс может содержать другой символьный класс. Само по себе это бесполезно, потому что
[a-z[0-9]]
описывает тот же набор, что и[a-z0-9]
. Однако символьные классы также поддерживаютamp;amp;
оператор, который выполняет пересечение множеств для своих аргументов.
Итак, [p{P}amp;amp;[^']]
это «любой символ, который является знаком препинания, а также не является апострофом».
Комментарии:
1. другой способ:
[^P{P}']
2. Да, решение @CasimiretHippolyte тоже должно сработать.