这是我的正则表达式:
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+"
时失败。
第一个正则表达式在找到包含该同义词的搜索字符串方面效果很好。但是,只有当它是单词字符时才会起作用。因为,同义词可能包含一个+号,它可能不会很好。
答案 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
),并且尾随的前瞻只会检查(不会消耗它)如果有空格或字符串的结尾($
),则为零宽度断言。