我是一个初学者,为此花费了很多时间。我部分能够解决它。
问题:我想忽略所有具有the
或The
的单词。例如。 atheist, others, The, the
将被排除。但是,hottie
不应包含在内,因为the
不会出现在整个单词中。
我正在使用Python的re
引擎。
这是我的正则表达式:
\b - Start at word boundary
(?! - Negative lookahead to avoid starting with the or The
[t|T]he - the and The
)
\w+ - Other letters are fine
(?<! - Negative look behind
[t|T]he - the or The shouldn't occur before \w+
)
\b - Word boundary
给定输入的预期输出:
Input: Atheist Others Their Hello the The bathe hottie tahaie theater
Expected Output: Hello hottie tahaie
在regex101中可以看到,我可以排除除atheist
之类的词以外的大多数词,即the or The
出现在单词中的情况。我在SO上进行了搜索,发现了诸如How to exclude specific string using regex in Python?之类的一些线程,但是它们似乎与我要执行的操作没有直接关系。
任何帮助将不胜感激。
请注意,我只想使用正则表达式来解决此问题。我不是在寻找使用python的字符串操作的解决方案。
答案 0 :(得分:3)
该方法比原始正则表达式更简单:
\b(?!\w*[t|T]he)\w+\b
我们匹配一个单词,但是请使用否定的“填充式”前瞻确保单词内没有the
。您原来的方法只禁止在单词的前面或后面使用the
,因为它不允许在单词边界之后/之前进行填充。
(?![tT]he)
仅在当前位置匹配 ,而(?:\w*[tT]he)
允许从当前位置扩展匹配,因为\w*
可以用作填充符