我有一个由单词除以“”组成的字符串。例如“this#is#an#example”,我需要根据倒数第二个单词提取最后一个单词或最后两个单词。
如果倒数第二个词是“我的话”,我需要最后两个词,否则就是最后一个。
'this#is#an#example' => 'example'
'this#is#an#example#using#myword#also' => 'myword#also'
有没有比拆分和检查倒数第二个更好的方法也许使用正则表达式?
谢谢。
最佳答案
您可以使用行尾锚$
并将myword#
前缀设为可选:
str = 'this#is#an#example'
str[/(?:#)((myword#)?[^#]+)$/, 1]
#=> "example"
str = 'this#is#an#example#using#myword#also'
str[/(?:#)((myword#)?[^#]+)$/, 1]
#=> "myword#also"
但是,我不认为在这种情况下使用正则表达式“更好”我会使用类似Santosh(已删除)的答案:用
#
分隔行并使用if子句。def foo(str)
*, a, b = str.split('#')
if a == 'myword'
"#{a}##{b}"
else
b
end
end
关于ruby - 根据单词分割字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23075901/