正则表达式匹配两个相似的词

Jack Guo

我遇到一个问题,其中正则表达式不匹配两个相似的单词:

例:

bitcoin and bitcoin atm

正则表达式:

new RegExp("(?:^|\\b)(bitcoin|bitcoin atm|test bitcoin)(?!\\w)");

这是一个演示:

(function myFunction() {

    var str = "bitcoin and bitcoin atm and test and test a and new test";
    
    var patt = new RegExp("(?:^|\\b)(bitcoin|bitcoin atm|test|test a|new test)(?!\\w)", "g");
    
    var res = str.match(patt);
    
    document.getElementById("demo").innerHTML = res;
    
})()
p{
  font-size: 30px;
}
<p id="demo"></p>

瑞安·图斯托(Ryan Tuosto)

将更具体的匹配项移动到匹配模式中的更高优先级。

(function myFunction() {

    var str = "bitcoin and bitcoin atm and test and test a and new test";

    var patterns = ['bitcoin', 'bitcoin atm','test', 'test a', 'new text'];

    patterns.sort(function(a,b){return b.length - a.length})
    
    var patt = new RegExp("(?:^|\\b)(" + patterns.join('|') + ")(?!\\w)", "g");
    
    var res = str.match(patt);
    
    document.getElementById("demo").innerHTML = res;
    
})()
p{
  font-size: 30px;
}
<p id="demo"></p>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当两个以上的分组匹配时,如何使正则表达式匹配?

正则表达式:在两个词之间捕获一个词

哪些正则表达式可以匹配相似的字符?

正则表达式在两个解脱词之间取得成功

使用正则表达式以任意顺序匹配两个单词

正则表达式:匹配3个连续词

两个视觉上相同的词,但只有一个与正则表达式匹配,这可能是什么问题?

正则表达式匹配输入的两个不同位置

两个非常相似的正则表达式,其他找不到匹配项

在正则表达式中,如何匹配两个不同的字符串

正则表达式:在两个标签(或两个星号)之间匹配换行

正则表达式无法在两个匹配项中使用相同的字符

正则表达式:在两侧的两个空格之间匹配单词

PHP正则表达式提取两个词

使用正则表达式拉一两个词

相互匹配两个正则表达式

如何匹配两个正则表达式?

正则表达式恰好两个或三个词

仅选择包含两个搜索词的行的正则表达式?

在Java中使用正则表达式匹配两个替代词或两个词

正则表达式匹配几种相似的字符串格式

正则表达式匹配两个单词,不匹配其他单词

在两个词之间应用正则表达式

正则表达式接受一两个词

正则表达式匹配一个没有跟在其他两个词之后的词

两个通配符之间的python正则表达式匹配

对两个相似字符串的 Bash 正则表达式测试匹配一个,而不匹配另一个

使用正则表达式区分两个相似的文本

正则表达式在两个不同的值之间找到第一个相似的字符