0
name="(this is 
a message
)

(other message)";

res=name.scan(/(\(.*\))/m);
puts res.join("###");

在上面的代码中,我想将匹配的括号与其中的文本提取为一个整体表达式。

我的意思是我想通过我的代码得到以下结果:

(this is 
a message
)###(other message)

也就是说,res的长度应该是2而不是1,但是在我的代码中,我总是得到:

(this is 
a message
)
(other message)

我的模式一定有问题,有人可以帮我解决吗?

4

1 回答 1

2

您想使用非贪婪匹配,因此将正则表达式行更改为:

res=name.scan(/(\(.*?\))/m);
于 2012-05-12T03:11:53.493 回答