在我的测试步骤中,我需要分割字母。
find(:xpath,"//*[]").text
提供类似"No#xyz1"
的字符串,其中No#
是静态部分。
我需要xyz1
。我该如何获得该部分?
答案 0 :(得分:1)
String#[]
的
"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"