gpt4 book ai didi

javascript - 匹配可能包含标点符号的单词边界的正则表达式

转载 作者:行者123 更新时间:2023-11-30 16:37:31 25 4
gpt4 key购买 nike

我正在使用正则表达式来操作以空格分隔的字符串列表。当用户希望删除标签时,正则表达式用 null 替换要删除的标签,系统保存新列表。当用户开始输入标点符号作为标签的一部分时,这就遇到了麻烦(有效用例)。当我意识到使用标点符号时,我开始使用正则表达式转义:

RegExp.escape = function(s){
return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
};

与我现有的正则表达式格式 (\bTAGTODELETE\b) 结合使用时,这在某些情况下不匹配。

以下面的标签列表为例:thisisatest?其他测试test2测试?正在测试

如果我想从列表中删除 test?\btest\?\b 匹配 test?ing。如果我想删除 thisisatest?\bthisisatesttest\?\b 有 0 个匹配项。

我已经尝试了几次迭代,但每一次似乎都有自己的问题。

最佳答案

因为 旁边没有单词边界?

\btest\?\B

这将匹配 test? 后跟 sapce 而不是 test? 后跟 ing in thisisatest?其他测试test2测试?测试输入。

\b - 单词字符和非单词字符之间的匹配(反之亦然)

\B - 两个单词字符或两个非单词字符之间的匹配。

? 非单词字符 space 非单词字符。所以 \B 非常适合这种情况。

关于javascript - 匹配可能包含标点符号的单词边界的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501204/

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