gpt4 book ai didi

javascript - 正则表达式匹配可选组,除非它里面有东西

转载 作者:行者123 更新时间:2023-11-30 17:41:51 24 4
gpt4 key购买 nike

我正在玩这个正则表达式:http://regex101.com/r/dL3qX1

!\[(.*?)\](?:\(\)|\[\])?

以下所有字符串都应该匹配。但是,如果第二组括号(可选)中包含任何内容,则正则表达式不应匹配任何内容。

// Match
![]
![caption]
![]()
![caption]()
![][]
![caption][]

// No match
![][No match]
![caption][No match]
![](No match)
![caption](No match)

我应该仍然能够匹配行末有文本的示例。

![] hello
![caption][] hi there

换句话说,如果没有可选组,我只想要一个匹配项,或者如果有,我只想要一个匹配项,如果可选组为空(括号之间没有任何内容)。

我追求的是可能的吗?

最佳答案

当涉及到括号时,我个人更喜欢使用否定类:

^!\[([^\[\]]*)\](?:\(\)|\[\])?$

regex101 demo

我将 (.*?) 替换为 [^\[\]]*,添加了 ^$分别在开头和结尾。

也就是说,如果我正确理解您要查找的内容,则只有第一组匹配。

关于javascript - 正则表达式匹配可选组,除非它里面有东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com