我的正则表达式有点麻烦,并且想知道是否有人可以请说明该怎么做。
基本上,我有这个正则表达式:
\[(link='\d+') (type='\w+')](.*|)\[/link]
例如,当我传递字符串时:
[link='8' type='gig']Blur[/link] are playing [link='19' type='venue']Hyde Park[/link]"
它只返回从开头[link]
标记到最后[/link]
标记的单个匹配项。
我只是想知道是否有人可以帮助我在(.*|)
部分放置什么,一次只选择一个[link][/link]
部分。
谢谢!
答案 0 :(得分:3)
您需要使用“?”进行通配符选择。运营商。我做到了:
/\[(link='\d+')\s+(type='\w+')\](.*?)\[\/link\]/
当然这对于任何类型的嵌套都会失败,在这种情况下,语言不再是常规的并且正则表达式不适合 - 找到解析器
答案 1 :(得分:0)
正则表达式信息a是一个很棒的网站。 This page给出了处理html标签的示例。还有一个Eclipse plugin,可以让你开发表达式并实时查看匹配。
答案 2 :(得分:0)
你需要在正则表达式中间使。*非贪婪。在正则表达式的风格中查找非贪婪模式的语法和/或标志。