【发布时间】:2017-09-18 20:39:07
【问题描述】:
我有这个正则表达式
/\[url=(?:")?(.*?)(?:")?\](.*?)\[\/url\]/mi
还有这些文本块
[url=/someurl?page=5#3467]First[/url][postquote=true]
[url=/another_url/who-is?page=4#3396] Second[/url]
Some text[url=/another_url/who-is?page=3][i]3[/i] Third [/url]
并且正则表达式非常适合提取网址和网址之间的文本
第 1 场比赛
1. /someurl?page=5#3467
2. First
第 2 场比赛
1. /another_url/who-is?page=4#3396
2. Second
第 3 场比赛
1. /another_url/who-is?page=3
2. [i]3[/i] Third
当我使用上面相同的正则表达式尝试从该文本中提取 url 时,就会出现问题
This is some text [url=https://www.somesite.com/location/?opt[]=apples]Link Name[/url]
第 1 场比赛
1. https://www.somesite.com/location/?opt[
2. =apples]Link Name
注意第二场比赛中的=apples]。我需要的是匹配的第一个匹配项,以将其包含在 url 中,例如
我已经尝试了很多修改这个正则表达式,但到目前为止还没有,任何帮助将不胜感激。
【问题讨论】:
-
你使用什么语言?
-
如果是RoR,见BBCode for Ruby on Rails。
-
是的 ruby on rails 我正在使用 BBCode 但这个问题只是普通的正则表达式
-
@WiktorStribiżew - 太好了,但我需要匹配 1 和 2,而你有 1 2 和 3。你能删除一个吗?
标签: ruby-on-rails regex bbcode