如何在一个较长的字符串中使用Ruby以“H”开头的10个字符的子字符串进行匹配?

时间:2011-08-30 03:54:50

标签: ruby regex string string-parsing

我有以下字符串:

/Users/patelc75/Documents/code/haloror/dialup/H200000787_1313406125/H200000787_1313389058_1.xml

在Ruby中,如何提取以H开头的前10个字符子字符串,并在H之后包含9位数字(仅限数字)。在上面的示例中,子字符串将是H200000787

2 个答案:

答案 0 :(得分:8)

您需要

String#[]方法:

str = '/Users/patelc75/Documents/code/haloror/dialup/H200000787_1313406125/H200000787_1313389058_1.xml'

puts str[/H\d{9}/]     #=> H200000787

答案 1 :(得分:2)

irb(main):001:0> s = "/Users/patelc75/Documents/code/haloror/dialup/H200000787_1313406125/H200000787_1313389058_1.xml"
=> "/Users/patelc75/Documents/code/haloror/dialup/H200000787_1313406125/H200000787_1313389058_1.xml"
irb(main):002:0> s =~ /H\d{9}/
=> 46
irb(main):003:0> $&
=> "H200000787"