我有一个在字符串中匹配这些字符串的正则表达式;但是,它也匹配非单词(词的部分)。
例如city
匹配,因为它包含it
。但是,如果只是空格之间的唯一字符,我只想要它匹配的字符串。因此it
或he
会匹配,但不会匹配城市或其他地方。
这是正则表达式(非常基本和简单):they|he|she|her|him|them|it
。
如果这个词只是这个,怎么能让它匹配这些词?
答案 0 :(得分:2)
使用字边界表示单词的开头和结尾。
http://www.regular-expressions.info/wordboundaries.html
所以你的正则表达式会变成以下的顺序:
\b(they|he|she|her|him|them|it)\b
应该注意的是,这个正则表达式赢得匹配包含撇号的单词,例如无法,赢得等。有关此问题的讨论,请参阅以下Stackoverflow帖子:
答案 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)