使用正则表达式来查看字符串是否仅包含此单词,而不是在另一个单词中

时间:2014-06-19 19:24:43

标签: javascript regex

我有一个在字符串中匹配这些字符串的正则表达式;但是,它也匹配非单词(词的部分)。

例如city匹配,因为它包含it。但是,如果只是空格之间的唯一字符,我只想要它匹配的字符串。因此ithe会匹配,但不会匹配城市或其他地方。

这是正则表达式(非常基本和简单):they|he|she|her|him|them|it

如果这个词只是这个,怎么能让它匹配这些词?

2 个答案:

答案 0 :(得分:2)

使用字边界表示单词的开头和结尾。

http://www.regular-expressions.info/wordboundaries.html

所以你的正则表达式会变成以下的顺序:

\b(they|he|she|her|him|them|it)\b

Check it out

应该注意的是,这个正则表达式赢得匹配包含撇号的单词,例如无法赢得等。有关此问题的讨论,请参阅以下Stackoverflow帖子:

How do you use the Java word boundary with apostrophes?

答案 1 :(得分:0)

尝试在单词

之前加上单词边界
(?:\bthey\b|\bhe\b|\bshe\b|\bher\b|\bhim\b|\bthem\b|\bit\b)

<强>解释

(?:...) # Non captuaring groups
\b      # Word boundary(It matches between a word character and a non word character)

DEMO