javascript - 用于计算特定事件的正则表达式模式

标签 javascript regex string match

我正在尝试匹配前面或后面或两者都有空格的单词。

var sample = " test-abc -test# @test _test hello-test@ test test "

就像上面的例子一样,第一个'test'会被算作它前面有一个空格,下一个不会被算作因为它没有空格,第三个'test'会被算作它后面有一个空格,类似地第四个也是,第五个不算,因为它前后没有空格,最后两个算在内,因为它们前后都有空格。

function countOccurences(str,word){
       var regex = new RegExp("(\\b|(?<=_))"+word+"(\\b|(?<=_))","gi");
       console.log((str.match(regex)|| []).length);
    }

我写的函数计算了确切的单词但不考虑空格所以我得到的输出是 7 但我想要得到的是 5。

最佳答案

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

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");

此处使用的正则表达式模式表示匹配:

(?<=\s)test  test preceded by whitespace
|            OR
test(?=\s)   test followed by whitespace

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

test-abc
@test
_test
test
test

关于javascript - 用于计算特定事件的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70120132/

相关文章:

javascript - 带有异步例程的新对象

java - 根据条件结束正则表达式

regex - 在 Golang 中从 HTML 中提取文本内容

java - 分解字符串并将其组成数组

javascript - 运行默认 jQuery 函数后运行 Javascript 函数

javascript - 如何获取列表中的多个项目

regex - htaccess 将带或不带尾部斜杠的 url 重定向到新 url

string - 识别字符向量中具有重复字母的项目

html - Golang 在 Revel 中将字符串渲染为 html

javascript - 当您在手机上向上滚动我的网页时,底部是白色的。我怎样才能解决这个问题?