gpt4 book ai didi

JavaScript 正则表达式 OR 运算符

转载 作者:行者123 更新时间:2023-12-03 11:58:33 25 4
gpt4 key购买 nike

我正在尝试将两个单独的正则表达式查询合并为一个小脚本中的一个默认查询。

第一个查询是

/\[(.*?)\]/g

与这样的短代码匹配

[gallery]

第二个查询是

/\[([^\]]+)]([^\[]+)\[\/([^\]]+)]/g

与这样的短代码匹配

[gallery]data[/gallery]

当我尝试组合查询时,如下所示

/\[(.*?)\]|\[([^\]]+)]([^\[]+)\[\/([^\]]+)]/g

除了扩展短代码中的“数据”之外,所有内容都匹配,如下所示。

[gallery]
[gallery][/gallery]

我期待/想看到的结果是这样的

[gallery]
[gallery]data[/gallery]

最佳答案

只需颠倒模式即可。因为匹配的顺序类似于您首先给出的正则表达式(即 正则表达式出现在 OR | 运算符) 将执行匹配操作,接下来是第二个正则表达式。您将 \[(.*?)\] 作为第一个正则表达式,因此它也匹配第二个正则表达式必须匹配的字符串。颠倒顺序将强制正则表达式引擎首先匹配这样的字符串:[gallery]data[/gallery]。之后,像 [gallery] 这样的字符串就会被匹配。

\[([^\]]+)]([^\[]+)\[\/([^\]]+)]|\[(.*?)\]

DEMO

关于JavaScript 正则表达式 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498580/

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