Ruby 捕捉像+;#这样的字符串用正则表达式

Ruby 捕捉像+;#这样的字符串用正则表达式,ruby,regex,Ruby,Regex,我正在构建一个项目,用户应该能够通过以下方式轻松生成链接:#这是链接#。我试图用正则表达式捕捉2个符号之间的字符串。我试过了 #.+# 如果用户字符串中只有一个链接,它就可以正常工作,但是如果有多个链接,比如 #asdfasdf asdf# asdf asfasdfasdf asd fasd fasdf #asdfasdf asdfasdf asdf asdf# 它抓住了整根绳子。但是我需要单独的标签,所以我可以用标签代替它们 这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长

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

#.+#
如果用户字符串中只有一个链接,它就可以正常工作,但是如果有多个链接,比如

#asdfasdf asdf# asdf asfasdfasdf asd fasd fasdf #asdfasdf asdfasdf asdf asdf#
它抓住了整根绳子。但是我需要单独的标签,所以我可以用标签代替它们

这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长字符串。您可以通过以下方式使其不贪婪:

/#.+?#/
演示:

这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长字符串。您可以通过以下方式使其不贪婪:

/#.+?#/
演示:

使用非贪婪匹配

#.+?#
它将捕获单个的。

使用非贪婪匹配

#.+?#

另一种方法是明确地说URL不能包含
:/#[^#]+/`。这将有效地等同于非贪婪匹配。另一种方法是显式地说URL不能包含
:/#[^#]+#/`。这实际上等同于非贪婪匹配。您可能需要考虑的一点是:
#
是URL中的合法字符(例如:),因此,您可能希望为希望嵌入包含
字符的URL的用户提供一种替代方法。您可能需要考虑的一点是:
是URL中的合法字符(例如:),因此您可能希望为希望嵌入包含
字符的URL的用户提供一种替代方法。