使用正则表达式捕获#。+#之类的字符串

时间:2012-05-23 21:42:17

标签: ruby regex

我正在构建一个项目,用户应该可以通过以下方式轻松生成链接:#this是链接#。我试图用正则表达式捕获2#符号之间的字符串。我试过了,

#.+#

如果用户字符串中只有1个链接,但如果有超过1个链接,

,则效果很好
#asdfasdf asdf# asdf asfasdfasdf asd fasd fasdf #asdfasdf asdfasdf asdf asdf#

它捕获了整个字符串。但我需要单独使用它们,所以我可以用标签代替它们。

2 个答案:

答案 0 :(得分:4)

这被称为“贪婪的正则表达式”。默认情况下,正则表达式匹配可能的最长字符串。你可以用这种方式使它变得非贪婪:

/#.+?#/

演示:http://rubular.com/r/7WWyaUApFt

答案 1 :(得分:2)

使用非贪婪的比赛

#.+?#

它会抓住个人的。