Regex -捕获条件组



我正在尝试将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生成器中玩了一下,但没有运气有条件地捕获组。

你需要改变两件事:

  1. 使url匹配不情愿(即.*?)
  2. 在条件
  3. 中移动提示类型周围的前导空格和引号

这适用于您的示例:

[(.*)]((.*?)(?: "(icon|small|medium|big)")?)

查看现场演示


旁注,您不需要转义]

最新更新