Ruby 捕捉像+;#这样的字符串用正则表达式
我正在构建一个项目,用户应该能够通过以下方式轻松生成链接:#这是链接#。我试图用正则表达式捕捉2个符号之间的字符串。我试过了Ruby 捕捉像+;#这样的字符串用正则表达式,ruby,regex,Ruby,Regex,我正在构建一个项目,用户应该能够通过以下方式轻松生成链接:#这是链接#。我试图用正则表达式捕捉2个符号之间的字符串。我试过了 #.+# 如果用户字符串中只有一个链接,它就可以正常工作,但是如果有多个链接,比如 #asdfasdf asdf# asdf asfasdfasdf asd fasd fasdf #asdfasdf asdfasdf asdf asdf# 它抓住了整根绳子。但是我需要单独的标签,所以我可以用标签代替它们 这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长
#.+#
如果用户字符串中只有一个链接,它就可以正常工作,但是如果有多个链接,比如
#asdfasdf asdf# asdf asfasdfasdf asd fasd fasdf #asdfasdf asdfasdf asdf asdf#
它抓住了整根绳子。但是我需要单独的标签,所以我可以用标签代替它们 这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长字符串。您可以通过以下方式使其不贪婪:
/#.+?#/
演示:这被称为“贪婪正则表达式”。默认情况下,正则表达式匹配可能的最长字符串。您可以通过以下方式使其不贪婪:
/#.+?#/
演示:使用非贪婪匹配
#.+?#
它将捕获单个的。使用非贪婪匹配
#.+?#
另一种方法是明确地说URL不能包含
:/#[^#]+/`。这将有效地等同于非贪婪匹配。另一种方法是显式地说URL不能包含
:/#[^#]+#/`。这实际上等同于非贪婪匹配。您可能需要考虑的一点是:#
是URL中的合法字符(例如:),因此,您可能希望为希望嵌入包含
字符的URL的用户提供一种替代方法。您可能需要考虑的一点是:
是URL中的合法字符(例如:),因此您可能希望为希望嵌入包含
字符的URL的用户提供一种替代方法。