RegEx:在字边界添加加号

时间:2016-05-06 18:57:44

标签: javascript regex

这是我的正则表达式:

new RegExp("\\b" + synonym.toLowerCase() + "\\b", "g").test(modSearchString.toLowerCase())

所以场景是modSearchString包含一串字符/单词。它正在检查modSearchString是否包含同义词以及它是否可以执行某些操作。现在,它一直运作良好。但是,如果同义词包含加号,它似乎不起作用。这些同义词中的大多数没有加号,但有些人会有可能。我怎样才能说出加号?

编辑

我希望它能让modSearchString中的短语与传递的同义词完全匹配。因此,如果同义词是“ThisPass +”和modSearchstring = 'Test for ThisPass++",则它应该失败。但是,它应该通过modSearchstring = 'Test for ThisPass+"。 如果同义词是“ThisPass”,则应该同样如此。它应该在modSearchstring = 'Test for ThisPass"时通过,在modSearchstring = 'Test for ThisPass+"时失败。

第一个正则表达式在找到包含该同义词的搜索字符串方面效果很好。但是,只有当它是单词字符时才会起作用。因为,同义词可能包含一个+号,它可能不会很好。

2 个答案:

答案 0 :(得分:0)

如果你只是需要检查一个字符串是否包含另一个字符串,你可以这样做:

public class MathUtil{

    int result;

    public int product(int n){

        for (int i = 1; i <= n; i++){

            result = result * n * i;

        }

        return result;

    }

}

答案 1 :(得分:0)

似乎你需要

new RegExp("(?:^|\\s)" + synonym + "(?=\\s|$)")

可在此处查看regex demo

第一个组(?:^|\s)只匹配字符串的开头(^)或空格(\s),并且尾随的前瞻只会检查(不会消耗它)如果有空格或字符串的结尾($),则为零宽度断言。