Ruby Regex - 获取人名

时间:2016-03-03 10:57:58

标签: ruby regex

给出这样的一致字符串:

Manual  stage: <b>Release</b> by <a href="https://test/builds/browse/user/a0123456">Joe Bloggs</a>


Changes by <a href="https://test/builds/browse/user/b234556">John Doe</a>

有一个简单的正则表达式可以用来拉人名吗? 是否有一个简单的正则表达式我可以提取ID(位于URL的末尾,例如b1234345)?

由于

1 个答案:

答案 0 :(得分:1)

虽然最好使用nokogiri,但这是一个简单的正则表达式:

▶ /(?<=\D)(\d+)\">([^<]+)<\/a>/ =~ \
  '<a href="https://test/builds/browse/user/b234556">John Doe</a>'
#⇒ 42
▶ $~
#⇒                                        ⇓⇓⇓⇓⇓⇓     ⇓⇓⇓⇓⇓⇓⇓⇓
#⇒ #<MatchData "234556\">John Doe</a>" 1:"234556" 2:"John Doe">

要获取号码和人员,请使用:

num, person = /(?<=\D)(\d+)\">([^<]+)<\/a>/.
  match('<a href="https://test/builds/browse/user/b234556">John Doe</a>').
  captures
#⇒ ["234556", "John Doe"]