2011-12-31 69 views
0

我只需要将文本匹配到“”。引号之间的文字匹配

我试着用这个代码,但这么想的工作:(提前

text = ""This is an example text to be mathed"" 
text.scan(/^(")$(")/) 

感谢。

+2

这没有意义。您的示例文本中没有任何双引号。 – 2011-12-31 20:45:08

+0

这是真的,我修复它,谢谢 – jgiunta 2011-12-31 20:52:24

+2

'“”这是一个示例文本mathed“”'是在Ruby中的无效字符串定义。也许在命令行上使用IRB进行试验会对你有所帮助?尝试在控制台中输入“irb”并交互式地尝试字符串定义和扫描。 – 2011-12-31 20:59:15

回答

3

所以你的例子不工作,因为你的字符串格式不正确。也就是说,“”嘘“”是不是一个Ruby字符串你可以使用单引号,使在双引号括起来的字符串,并做了比赛,就像这样:

>> boo = '"Sample text to be matched"' 
=> ""Sample text to be matched"\n" 
>> boo.scan(/"(.*)"/) 
=> [["Sample text to be matched"]] 
+2

使用'。*'表示''a foo bar'和'baz qux'''会给出'foo bar'和'baz qux''的匹配。使用'/“[^”] *“/'。 – Walf 2012-01-01 01:02:05

0

匹配字符串一个更好的模式是:

/"(\\.|[^"])*"/ 

这将消耗反斜杠转义,但会停止在第一个终止"(除非它前面有一个反斜杠)。

相关问题