Отдельное слово Regex Ruby - PullRequest
0 голосов
/ 28 марта 2012

У меня есть куча входных файлов в цикле, и я извлекаю тег из них.Тем не менее, я хочу отделить некоторые слова.Входящие строки имеют вид cs ###, где ### => - любое число от 0 до 9.Я хочу, чтобы результат был cs ###.Ближайший ответ, который я нашел, был, Regex, чтобы отделить Numeric от Alpha .Но я не могу заставить это работать, так как строка предопределена (Static) и мои изменения.

Найденный ответ: Неважно, я нашел ответ, состоящий из следующих алфавитно-цифровых символов и удаляет все нежелательные не буквенно-цифровыесимволы, что-нибудь вроде ab5 @ 6 $% => ab 56

gsub(/(?<=[0-9])(?=[a-z])|(?<=[a-z])(?=[0-9])/i, ' ').gsub(/[^0-9a-z ]/i, ' ')

1 Ответ

3 голосов
/ 28 марта 2012

Если ваша строка похожа на

str = "cs3232
cs23
cs423"

Тогда вы можете сделать что-то вроде

str.scan(/((cs)(\d{1,10}))/m).collect{|e| e.shift; e }
# [["cs", "3232"], ["cs", "23"], ["cs", "423"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...