请问这个正则表达式如何写?

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:46:14
举例:
He is a good teacher.
He is an execlent teacher.
He is a mathematics teacher.

要求:
查找到前一个单词不是good和execlent的所有teacher.即要求查询结果为:mathematics teacher

谢谢!
——回答时请顺便告知您使用的是什么软件中的正则表达式(最好是通用的,如emeditor)
输出mathematics teacher或其中的teacher均可以。

请回答前将您的表达式做一下测试,或者告知使用的是什么软件?readlog的表达式我在emeditor中就不行!负向零宽断言我也学过一点皮毛,如果只需排除一个单词我会,但现在要排除二个单词!

以下是正确的:
“(?<!\bgood\b) teacher”或“(?<!good) teacher”

以下是错误的:
“(?<!\bgood\b|\bexeclent\b) teacher”或“(?<!good|execlent) teacher”或“(?<!good)|(?<!execlent) teacher”
问题已解决,自己摸索出来了:
(?<!good)(?<!execlent) teacher

(?!good|execlent) teacher
简单的负向预查

如果你要输出mathematics teacher,用断言是不能实现的,可以这样,如果有多个单词都是同一个字母开头那就增加判断第二个字符,依次类推

\b[^ge\s][A-Za-z]+\s+teacher