2011-12-31 70 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

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

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

這將消耗反斜槓轉義,但會停止在第一個終止"(除非它前面有一個反斜槓)。

相關問題