非贪婪向后JavaScript正则表达式
Non-Greedy Backwards JavaScript Regex?
我有以下JavaScript正则表达式:
/'!'[(.*?)']'((.+?) '"(.*?)'"')/g
应用于如下字符串:
![test](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png)<br />![test](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "test")<br />![test](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png)<br />![test](https://github.com/adam-p/markdown-here/raw/master/src/common/images/icon48.png "test")
regex101联系
我遇到的问题是,在搜索字符串中应该有4个不同的markdown标签,其中两个应该匹配,但是两个匹配回来包括markdown标签。
这似乎归结为regex解析器循环,抓住第一个可能的匹配起始点,并继续搜索匹配的其余部分,而不考虑在匹配中存在稍后可能的起始点。我认为我可以用非贪婪的?
修饰符来解决这个问题,但情况似乎并非如此。
有什么建议吗?
其中两个Markdown链接没有描述,但是描述在正则表达式中不是可选的。
/'!'[(.*?)']'((.+?)(?: '"(.*?)'")?')/g
最好排除链接地址部分中的某些字符,以避免像这样意外的长匹配(尽管如果需要健壮性,应该使用现有的Markdown解析器)。
/'!'[(.*?)']'(([^)]+?)(?: '"(.*?)'")?')/g
相关文章:
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 将javascript正则化为vb
- 将po-box javascript正则表达式转换为c#regex
- 被javascript正则表达式分组卡住了
- 从字符串中提取年份的Javascript正则表达式
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- JavaScript正则表达式匹配量
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 查找所有注释的JavaScript正则表达式
- javascript正则表达式验证未按预期工作
- javascript正则表达式,用于匹配带数字和不带数字的字符串
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- JavaScript正则表达式(带_-的字母数字字符)
- 用特定的javascript正则表达式替换每个单词
- 搜索日历事件的Javascript正则表达式
- 如何获取 JavaScript 正则表达式子匹配的位置
- 正则表达式子字符串以JavaScript开始和结束