我正在尝试将MD语法转换为Java中的HTML。
在https://regex101.com/上我试图匹配这个:
[(.*)]((.*) "(icon|small|medium|big)?")
正则表达式到这些测试行:
[link 1](https://aka.ms/aadrecoverykey "icon")
[link 1](https://aka.ms/aadrecoverykey "small")
[link 1](https://aka.ms/aadrecoverykey "medium")
[link 1](https://aka.ms/aadrecoverykey "big")
[link 2](http://myaccount.microsoft.com)
我想做的是捕捉图标,小,中或大的关键字在引号中,以防它有可能设置大小提示结果标签。我在有条件地努力捕捉它。(理想情况下,regex应该匹配所有具有额外捕获组的测试行,第4行根本没有捕获组,因为没有指定提示。
我在regex生成器中玩了一下,但没有运气有条件地捕获组。
你需要改变两件事:
- 使url匹配不情愿(即
.*?
) - 在条件 中移动提示类型周围的前导空格和引号
这适用于您的示例:
[(.*)]((.*?)(?: "(icon|small|medium|big)")?)
查看现场演示
旁注,您不需要转义]