2012-02-12 127 views
0

我想问,因为我看,它的具体和无法找到其他线程。红宝石报价正则表达式

我想制作一个正则表达式,它将捕获两个引号和引号之间的所有内容以及周围的内容。

,如:“插入的任何字符串这里(可包含”“的)”

基本上我想这将需要在它们之间的报价和一切正则表达式线(可以是任何东西)。

所以引用一行内容和任何内容。

我似乎无法弄清楚这一点。

+1

听起来有点问题。要澄清您所问的内容:即使字符串中有引号,也需要用引号括起来的最大字符串。所以“富”玛丽“应该匹配作为富”玛丽,对吗? – 2012-02-12 05:33:21

+1

你想要匹配什么样的样本并且不匹配? – Mori 2012-02-12 05:34:43

+0

为什么使用正则表达式?可能会比较容易点数,使用堆叠等。 – 2012-02-12 05:36:04

回答

1

我认为你只是有单引号和双引号的问题。使用此:

%q{like: "insert whatever string here (which can include " "'s)"}[/".*"/] 
1

从事物的正则表达式的一面,你可以试试这个:

str = %q{uncaptured " captured " " /captured " /uncaptured} 
str[/".*"/] 
#=> "" captured " " /captured "" 

对于非正则表达式的解决方案,你只要找到第一个和最后一个索引并收集子之间:

str[str.index('"')..str.rindex('"')]