我正在尝试将降价标签与递归匹配。
输入语法
(TYPE: VALUE ATTR_KEY: ATTR_VALUE)
请注意,语法应以:[a-z0-9_-]+:
样本输入:
(image: sky.jpg)
(image: sky.jpg caption: Sky (Issue This) View)
(link: https://stackoverflow.com text: Stack Overflow)
(link: https://stackoverflow.com text: Stack Overflow rel=nofollow)
(video: http://www.youtube.com/watch?v=49Kh1mS4Fhs)
目前使用以下正则表达式:
(?=[^\]])\([a-z0-9_-]+:.*?\)
但是问题来自这里,因为匹配:
(image: sky.jpg caption: Sky (Issue This)
预期匹配:
(image: sky.jpg caption: Sky (Issue This) View)
如果在括号中再次使用括号,则不完全匹配。
我尝试遵循递归模式和工作,但我需要限制以字符开头。
(?s)\((?:[^()]+|(?R))*+\)
\((?:[^)(]+|(?R))*+\)
慕桂英4014372