Ruby从两个问号之间的字符串中提取子字符串?

Ruby从两个问号之间的字符串中提取子字符串?,ruby,string,Ruby,String,假设我有这样一个字符串: “你的名字是什么?我的名字是约翰。你的姓是什么?我的姓是多伊。” 如何提取问号之间的字符串?输出应为: 我的名字是约翰。你的姓是什么?< /代码> < /P> < p>使用分割函数,然后访问中间的一个,这是问号之间的文本。 如果你想要领先的空间,你可以简单地做到这一点 string.split('?')[1] 要删除前导空格,可以调用lstrip方法 string.split('?')[1].lstrip 使用分割函数,然后访问中间的一个,这是问号之间的文本。 如

假设我有这样一个字符串:

“你的名字是什么?我的名字是约翰。你的姓是什么?我的姓是多伊。”

如何提取问号之间的字符串?输出应为:


<代码>我的名字是约翰。你的姓是什么?< /代码> < /P> < p>使用分割函数,然后访问中间的一个,这是问号之间的文本。

如果你想要领先的空间,你可以简单地做到这一点

string.split('?')[1]
要删除前导空格,可以调用
lstrip
方法

string.split('?')[1].lstrip

使用分割函数,然后访问中间的一个,这是问号之间的文本。

如果你想要领先的空间,你可以简单地做到这一点

string.split('?')[1]
要删除前导空格,可以调用
lstrip
方法

string.split('?')[1].lstrip
可以与正则表达式一起使用

"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"
还有很多其他的答案。我可以建议你把问题说得更清楚一点吗?

你可以和正则表达式一起使用

"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"

还有很多其他的答案。我建议让你的问题更清楚一点好吗?

我建议将正则表达式传递给
String#slice
——它将返回一个与正则表达式匹配的(子)字符串,或者如果调用它的字符串中没有匹配项,则返回
nil


您通常会发现正确使用正则表达式很有帮助。

我建议将正则表达式传递给
String#slice
——它将返回一个与正则表达式匹配的(子)字符串,如果调用它的字符串中没有匹配项,则返回
nil


通常,您可能会发现正确使用正则表达式很有帮助。

如果将
3
作为第二个参数传递给
split
,效率会更高。这将返回一个前导空格,这是OP要求的。如果不需要前导空格,可以稍微修改一下:`string.split(/\?\s*/)[1]#=>“我的名字是John,你的姓是什么”。是的,还有一个
lstrip
方法可以删除前导空格。如果将
3
作为第二个参数传递给
split
,效率会更高。这将返回一个前导空格,这就是OP的要求。如果不需要前导空格,可以稍微修改一下:`string.split(/\?\s*/)[1]#=>“我的名字是John,你的姓是什么”。是的,还有一种删除前导空格的方法。