首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于计数某一事件的Regex模式

用于计数某一事件的Regex模式
EN

Stack Overflow用户
提问于 2021-11-26 06:01:31
回答 1查看 53关注 0票数 3

我试着匹配一个单词,它前面有空格,后面有空格,或者两者都有。

代码语言:javascript
复制
var sample = " test-abc -test# @test _test hello-test@ test test "

就像在上述情况下,第一个‘测试’将计数,因为它有一个空间在它之前,下一个将不计数,因为它没有空间,第三个‘测试’将计算为它有一个空间之后,同样的第四个也将不计数,因为它没有空格前或后面,最后两个将像他们有空格前后。

代码语言:javascript
复制
function countOccurences(str,word){
       var regex = new RegExp("(\\b|(?<=_))"+word+"(\\b|(?<=_))","gi");
       console.log((str.match(regex)|| []).length);
    }

我所写的函数计算准确的单词,但不考虑空间,所以我得到的输出是7,但我想得到的是5。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-26 06:04:38

您可以在这里尝试使用match()

代码语言:javascript
复制
var sample = " test-abc -test# @test _test hello-test@ test test ";
var matches = sample.match(/(?<=\s)test|test(?=\s)/g, sample);
console.log("There were " + matches.length + " matches of test with whitespace on one side");

此处使用的regex模式表示匹配:

代码语言:javascript
复制
(?<=\s)test  test preceded by whitespace
|            OR
test(?=\s)   test followed by whitespace

请注意,这里的5场比赛是:

代码语言:javascript
复制
test-abc
@test
_test
test
test
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70120132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档