gpt4 book ai didi

javascript - 正则表达式匹配后面没有特定单词的空格

转载 作者:行者123 更新时间:2023-11-29 19:18:54 25 4
gpt4 key购买 nike

我花了最后几个小时试图弄清楚如何匹配所有空格 (\s),除非后面是 AND\s 或前面是 \sAND.

目前我有这个

\s(?!AND\s)

但它会匹配 \sAND 之后的空格,但我不希望这样。

如有任何帮助,我们将不胜感激。

最佳答案

通常,当您想按出现在特定上下文中的单个字符进行拆分时,您可以用匹配的方法替换该方法。

我建议匹配所有由AND连接的非空白字符序列before,然后匹配任何其他非空白字符序列。因此,我们将确保获得一组必要的子字符串:

\S+\sAND\s\S+|\S+

参见 regex demo

我假设 \sAND\s 模式出现在一些非空白字符之间。

var re = /\S+\sAND\s\S+|\S+/g; 
var str = 'split this but don\'t split this AND this';
var res = str.match(re);
document.write(JSON.stringify(res));

作为Alan Moore建议,交替可以展开到 \S+(?:\sAND\s\S+)* :

  • \S+ - 1 个或多个非空白字符
  • (?:\sAND\s\S+)* - 0 个或多个(因此,它是可选的)序列......
    • \s - 一个空格(添加 + 以匹配 1 个或多个)
    • AND - 文字 AND 字符序列
    • \s - 一个空格(添加 + 以匹配 1 个或多个)
    • \S+ - 一个或多个非空白符号。

关于javascript - 正则表达式匹配后面没有特定单词的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33977113/

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