如何在ruby中拆分字符串?

时间:2017-05-31 10:37:09

标签: ruby string

在我的测试步骤中,我需要分割字母。

find(:xpath,"//*[]").text

提供类似"No#xyz1"的字符串,其中No#是静态部分。

我需要xyz1。我该如何获得该部分?

3 个答案:

答案 0 :(得分:1)

带有String#[]

positive lookbehind来救援:

"No#xyz1"[/(?<=No#).*/]
#⇒ "xyz1"

所以在你的匹配器中你可以使用:

find(:xpath,"//*[]").text[/(?<=No#).*/] == "xyz1"

答案 1 :(得分:0)

有很多方法可以实现这一目标。例如,您可以使用正则表达式和扫描方法:

Jquery

或字符串上的“虚拟”分割:

[1] pry(main)> "No#xyz1".scan(/No#(.+)/).first.first
=> "xyz1"

我会推荐第一个。

答案 2 :(得分:0)

String#partition在这里运作正常。

  

在字符串中搜索sep或pattern(regexp)并返回该部分   在它之前,比赛,以及之后的部分。如果找不到,   返回两个空字符串和str。

"No#xyz1".partition("No#")
# => ["", "No#", "xyz1"]
"No#xyz1".partition("NotHere")
# => ["No#xyz1", "", ""]

所以你可以使用:

"No#xyz1".partition("No#").last
# => "xyz1"