gpt4 book ai didi

javascript - 捕获后面没有符号的单词

转载 作者:行者123 更新时间:2023-12-02 18:33:25 31 4
gpt4 key购买 nike

我需要捕获除缩写之外的所有(英语)单词,其模式为:

"_any-word-symbols-including-dash." 

(因此开头有下划线,结尾有点,中间有任何字母和破折号)

我尝试过这样的事情:

/\b([A-Za-z-^]+)\b[^\.]/g

但我似乎不明白如何处理负面匹配。

更新:

我不仅需要匹配,还需要将单词包装在一些标签中:

“一些单词_abbr-abrr.a在这里”我应该得到:

<w>a</w> <w>some</w> <w>words</w> _abbr-abbr. <w>a</w> <w>here</w>

所以我需要使用正确的正则表达式替换:

test.replace(/correct regex/, '<w>$1</w>')

最佳答案

Negative lookahead(?!)

所以你可以使用:

/\b([^_\s]\w*(?!\.))\b/g

不幸的是,有no lookbehind in javascript ,所以你不能用“not prefixed by _”来实现类似的技巧。

示例:

> a = "a some words _abbr. a here"
> a.replace(/\b([^_\s]\w*(?!\.))\b/g, "<w>$1</w>")
"<w>a</w> <w>some</w> <w>words</w> _abbr. <w>a</w> <w>here</w>"

在您的评论后加上-。更新后的正则表达式是:

/\b([^_\s\-][\w\-]*(?!\.))\b/g

> "abc _abc-abc. abc".replace(/\b([^_\s\-][\w\-]*(?!\.))\b/g, "<w>$1</w>")
"<w>abc</w> _abc-abc. <w>abc</w>"

关于javascript - 捕获后面没有符号的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17586018/

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