Разрешить буквенно-цифровой и #, заменить запятую и разделить пробелом - PullRequest
0 голосов
/ 06 апреля 2011

Я хочу сделать следующее в регулярном выражении:

1. allow alphanumeric characters
2. allow the # character, and comma ','
3. replace the comma ',' with a space
4. split on space


sentence = "cool, fun, house234"

>> [cool, fun, house234]

Ответы [ 4 ]

4 голосов
/ 06 апреля 2011

Это простой способ сделать это:

sentence.scan(/[a-z0-9#]+/i) #=> ["cool", "fun", "house234"]

В основном он ищет серии символов, которые содержат от a до z в верхнем и нижнем регистре, плюс 0 до 9 и #, и возвращает их. Поскольку запятая и пробел не совпадают, они игнорируются.

Вы не показываете пример с использованием #, но я добавил его, потому что вы так сказали.

0 голосов
/ 06 апреля 2011
"cool, fun, house234".split(",")
 => ["cool", " fun", " house234"] 

Вы можете просто передать "," в метод split, чтобы разделить запятую, не нужно преобразовывать ее в пробелы.

0 голосов
/ 06 апреля 2011

Возможно, что вы хотели это?

string.gsub(/[^\w, #]/, '').split(/ +,? +/)
0 голосов
/ 06 апреля 2011

Вы можете сделать 1 и 2 с регулярным выражением, но не 3 и 4.

sentence = "cool, fun, house234"

sentence.gsub(',', ' ').split if sentence =~ /[0-9#,]/

=> [ "cool", "fun", "house234" ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...