在我的測試步驟中,我需要分割字母。如何在紅寶石中分割字符串?
find(:xpath,"//*[]").text
給像"No#xyz1"
,其中No#
是一個靜態部分的字符串。我需要xyz1
。我如何獲得該部分?
在我的測試步驟中,我需要分割字母。如何在紅寶石中分割字符串?
find(:xpath,"//*[]").text
給像"No#xyz1"
,其中No#
是一個靜態部分的字符串。我需要xyz1
。我如何獲得該部分?
有很多方法可以做到這一點。你可以,例如,使用正則表達式和掃描方法:
[1] pry(main)> "No#xyz1".scan(/No#(.+)/).first.first
=> "xyz1"
或「僞」分裂上串太:
[4] pry(main)> "No#xyz1".split("No#")
=> ["", "xyz1"]
[5] pry(main)> "No#xyz1".split("No#").last
=> "xyz1"
我建議第一個,雖然。
請注意,如果字符串中不存在「否#」,則這兩種方法都會失敗。我不知道期望的行爲是什麼。 –
String#[]
與positive lookbehind就派上用場了:
"No#xyz1"[/(?<=No#).*/]
#⇒ "xyz1"
因此,在你匹配,你可以使用:
find(:xpath,"//*[]").text[/(?<=No#).*/] == "xyz1"
或者'text [/ No#(。*)/,1]'。 – Stefan
String#partition
正常工作在這裏。
在字符串中搜索sep或pattern(regexp),並在它之前,匹配以及它之後的部分返回部分 。如果找不到, 會返回兩個空字符串和str。
"No#xyz1".partition("No#")
# => ["", "No#", "xyz1"]
"No#xyz1".partition("NotHere")
# => ["No#xyz1", "", ""]
所以,你可以使用:
"No#xyz1".partition("No#").last
# => "xyz1"
請張貼你做了一些努力。 – Surya
您遇到的問題是什麼? –
請閱讀「[mcve]」和鏈接頁面。你需要證明你的努力,並提供證明問題的最小輸入。 –