我有一个文档列表,我必须根据给定的匹配来获取某些结果。我正在使用正则表达式。我正在使用此正则表达式来匹配我在文档中的查询
(.*)query(.*)
他们是这个正则表达式中的一个问题。例如,如果您正在搜索查询“mba”,那么正则表达式将是
(.*)mba(.*)
它给我这样的结果
(mca or mba) along with doeacc 'b' level // correct "mba" preceeded by '('
academy of theatre arts/dramatic arts, university of mumbai // not fine "mba" comes in mumbai
aditya college of mba // correct
agrawal institute of management & technology, mumbai // not fine "mba" comes in mumbai
agricultural college & research institute, coimbatore // not fine "mba" comes in coimbatore
agricultural college and research institute, coimbatore // not fine "mba" comes in coimbatore
如果我想检查查询之前和之后的字符
`"mba" in this case
是非字母表,即不在[a-z]和[A-Z]中 他们是一种在正则表达式中排除给定字符的方法
由于
答案 0 :(得分:4)
执行此匹配的最简单方法是使用\b
锚点,该锚点匹配字边界:
\bmba\b
\b
锚点与字符不匹配,但与单词字符和非单词字符之间的零宽度边界不匹配。因此\bmba\b
只会在mba
前面有非{8}或(
等非字字符且后跟非字字符的情况下匹配。