1

使用正则表达式,我似乎无法使以下工作。在单词“ Inst ”或“ Ins ​​titution ”之前但后面没有作为同一单词一部分的单词组的任何字符集。例如,我不想匹配“ m_InstitutionGroup ”,但我确实想要“ m_Institution blah blah Group

其他示例:

Inst - include
inst - include 
institution - include
rtertInstitutionsdfdf – include
345_rtertInstitutionssdf45d454fdf – include
InstXXX555_group - exclude
Institution456eretGroup - exclude

我努力了:

inst(itution)(?!(Group))
4

4 回答 4

2

尝试这个

[Ii]nst(itution)?(?!(\w*[Gg]roup))

在 Regexr 上查看

这将匹配[Ii]nst一个可选的(itution)?跟随,但前提是没有[Gg]roup跟随\w之间只有字符(字母、数字和_)。

于 2012-05-02T14:14:44.593 回答
1

这个正则表达式:

inst(itution)(?!(Group))

只会匹配institution,而不是inst,因为您没有itution选择。此外,它仅在紧随Group 其后institution时才有效。

尝试:

[Ii]nst(?:itution)?(?!\S*[Gg]roup)

读作Inst, inst, Institution, orinstitution后跟任何内容直到下一个空格,只要任何内容​​不包含字符串groupGroup.

于 2012-05-02T14:06:19.803 回答
0

您需要在搜索词之间匹配一个空格:

\w+(?=[iI]nst(itution)?.* .*Group)

请注意,这些匹配第一个字母是任何大小写 - 即iI- 因为你的尝试表明你想要这个

于 2012-05-02T14:08:15.183 回答
0
\w*inst(itution)?\w*(?<!group)\b

您似乎忽略了大小写,因此将相应的标志添加到正则表达式函数中。

正则表达式链接

于 2012-05-02T14:18:40.887 回答