Ruby中的RegEx帮助

Ruby中的RegEx帮助,ruby,regex,Ruby,Regex,我的示例文件如下所示: H343423 Something1 Something2 C343423 0 A23423432 asdfasdf sdfs #2342323 我有以下正则表达式: if (line =~ /^[HC]\d+\s/) != nil puts line end 基本上,我想读所有以H或C开头,后面跟着

我的示例文件如下所示:

H343423     Something1          Something2                                                
C343423              0   
A23423432     asdfasdf sdfs 
#2342323
我有以下正则表达式:

if (line =~ /^[HC]\d+\s/) != nil 
  puts line
end
基本上,我想读所有以H或C开头,后面跟着数字的东西,当遇到空格时,我想停止阅读,我想读一个单词

我想要的输出是:

H343423
C343423
我的正则表达式得到的输出是:

H343423     Something1          Something2                                                
C343423              0   
因此,它获取了整行内容,但我只希望它在第一个单词被读取后停止

有什么帮助吗

if (line =~ /^([HC]\d+)/)
  puts $1
end
有关详细信息,请参阅 如果不想使用括号,则匹配项有一个特殊变量$&

下面的步骤也会这样做

if line =~ /^[HC]\d+/
  puts $&
end
有关详细信息,请参阅 如果不想使用括号,则匹配项有一个特殊变量$&

下面的步骤也会这样做

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

要拾取H或C后面的所有数字,\d+将起作用。如果你想让它停在第一个空格上,\S+。啊,所以你必须得到$1…$2等回馈耶@Akash,这些圆括号是$1$2。。。etc.@user30997,\d+将在第一个非数字处停止。要拾取H或C后面的所有数字,\d+将起作用。如果你想让它停在第一个空格上,\S+。啊,所以你必须得到$1…$2等回馈耶@Akash,这些圆括号是$1$2。。。etc.@user30997,\d+将在第一个非数字上停止。