Регулярное выражение: возможен оператор объединения списка [a-z] с "" {2,} в одном выражении? Буквы a-z и не более одного пробела подряд - PullRequest
0 голосов
/ 18 сентября 2010

Я ищу регулярное выражение, которое позволяет мне заменять все символы, кроме букв и цифр и один пробел последовательно.

Например:

string = "a b c         e f g 1 2 3 !"

следует заменить в рубине на "a b c e f g 1 2 3 "

сопоставление букв и цифр не является проблемой для [a-zA-Z0-9] с оператором списка. но как объединить оператор интервала для "" {2,} с оператором списка, поскольку кажется, что интервалы не могут использоваться в операторах списка? Или есть другой подход.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2010

Вы можете просто заменить все последовательности не буквенно-цифровых символов одним пробелом:

string.gsub(/[^a-zA-Z0-9]+/, " ")
0 голосов
/ 18 сентября 2010
irb(main):001:0> string = "abc         e f g 1 2 3 !"
=> "abc         e f g 1 2 3 !"
irb(main):002:0> string.gsub(/[^[:alnum:]]/,"").gsub(/(.)/,'\1 ')
=> "a b c e f g 1 2 3 "

irb(main):002:0> string = "abc         e f g 1 2 3 !"
=> "abc         e f g 1 2 3 !"
irb(main):003:0> string.gsub(/[^a-zA-Z0-9]+/, " ")
=> "abc e f g 1 2 3 "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...