ruby - Ruby 中的正则表达式帮助

标签 ruby regex

我的示例文件如下:

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   

所以它正在获取整行,但我只是希望它在读取第一个单词后停止。

有什么帮助吗?

最佳答案

if (line =~ /^([HC]\d+)/)
  puts $1
end

有关详细信息,请参阅

如果不想用括号,匹配项有专门的变量$&

下面会做同样的事情

if line =~ /^[HC]\d+/
  puts $&
end

关于ruby - Ruby 中的正则表达式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862353/

相关文章:

ruby - 如何在 BigQuery Ruby API 中设置 BillingTier?

ruby - 如何为 Guardfile 指定指向父目录中某个位置的输入?

mysql - 使用 ruby​​ on rails 事件记录插入多条记录

jquery - 搜索完全匹配并突出显示 jquery 数据表正则表达式

php - Codeigniter - if 语句中的正则表达式?

Java正则表达式来验证日期范围

javascript - 如何使用 Javascript Regex 从字符串中获取数据

java - 如何避免Java正则表达式匹配中隐含的 "^"和 "$"?

ruby - 在 Ruby 中标记已弃用代码的最佳实践?

ruby - 与 sinatra 一起使用