Помощь RegEx в Ruby - PullRequest
       3

Помощь RegEx в Ruby

1 голос
/ 19 мая 2010

Мой пример файла, как показано ниже:

H343423     Something1          Something2                                                
C343423              0   
A23423432     asdfasdf sdfs 
#2342323

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

if (line =~ /^[HC]\d+\s/) != nil 
  puts line
end

По сути, я хочу прочитать все, что начинается с H или C, за которым следуют цифры, и я хочу прекратить чтение, когда встречается пробел (хочу прочитать одно слово).

Вывод, который я хочу получить:

H343423
C343423

Вывод, который получает мой RegEx:

H343423     Something1          Something2                                                
C343423              0   

Так что он выбирает всю строку, но я просто хочу, чтобы она остановилась после прочтения первого слова.

Любая помощь?

1 Ответ

5 голосов
/ 19 мая 2010
if (line =~ /^([HC]\d+)/)
  puts $1
end

Для получения дополнительной информации см.

Если вы не хотите использовать скобки, для элемента соответствия есть специальная переменная $ &

Следующие будут делать то же самое

if line =~ /^[HC]\d+/
  puts $&
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...