gpt4 book ai didi

javascript - 正则表达式:\b 表示不以单词字符开头的字符串?

转载 作者:行者123 更新时间:2023-11-29 22:13:15 28 4
gpt4 key购买 nike

假设我有以下字符串:

Lorem #test ^%#test ipsum#test dolor #test sit #testamet.
^^^^^ ^^^^^

我使用什么正则表达式来仅选择标记的 #test 实例?因此,如果它是另一个词的一部分或者其中有其他字符,我不想选择它。

如果我只搜索test,我会使用/\btest\b/g,但是\b似乎只是如果文本以单词字符开头,是否可行?

最佳答案

\b 没有确切的替代品,因为 JavaScript 没有 lookbehind assertions .

但是如果你不介意前面的空格字符成为匹配的一部分,你可以使用

/(?:^|\s)#test\b/m

如果它在一行的开头,则匹配 "#test",如果不是,则匹配 "#test"

如果您想要空格以外的其他字符来分隔您的“单词边界”,那么您可以指定它们。例如,如果您想接受除 \w 字符以外的任何字符,则使用

/(?:^|\W)#test\b/m

这将匹配 "foo,#test,foo" 中的 ",#test"。不幸的是,你不能去掉比赛中的逗号。但是如果你使用

var match = /(?:^|\W)(#test)\b/m.exec(subject);
if (match != null) {
result = match[1];
}

你至少接近了。

关于javascript - 正则表达式:\b 表示不以单词字符开头的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883778/

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