我们说我有一个这样的字符串:
"What is your first name? My first name is John. What is your last name? My last name is Doe."
如何在问号之间提取字符串?输出应为:
" My first name is John. What is your last name"
答案 0 :(得分:6)
使用分割功能,然后访问中间的那个,这是问号之间的文字。
如果你想要领先的空间,你可以简单地做到这一点
string.split('?')[1]
要删除前导空格,您可以调用lstrip
方法。
string.split('?')[1].lstrip
答案 1 :(得分:2)
我建议将正则表达式传递给String#slice
- 它将返回与正则表达式匹配的(子)字符串,如果在您调用它的字符串中没有匹配项则返回nil
。
您通常会发现http://rubular.com/有助于正确使用正则表达式。
答案 2 :(得分:1)
您可以将String#gsub与正则表达式
一起使用"What is your first name? My first name is John. What is your last name? My last name is Doe.".
gsub(/^.*\?(.*)\?.*$/,"\\1")
#=> " My first name is John. What is your last name"
还有很多其他答案。我可以建议你提问一下吗?