regex包含“times”但不包含“clock”

2024-09-28 23:40:34 发布

您现在位置:Python中文网/ 问答频道 /正文

免责声明:我知道可以使用“in”和“not in”,但由于技术限制,我需要使用regex。在

我有:

a = "digital clock time fan. Segments featuring digital 24 hour oclock times. For 11+"
b = "nine times ten is ninety"

而ocb只包含“基于”和“将要通过”的时间

有什么想法吗?在


Tags: in声明fortimenot技术regextimes
1条回答
网友
1楼 · 发布于 2024-09-28 23:40:34

您可以为此使用negative lookahead

^(?!.*\bo?clock\b).*\btimes\b

说明:

^{pr2}$

\b用于单词边界,因此您仍然可以匹配'clocked times'这样的字符串,但是对于'timeshare'这样的字符串则会失败。如果您不希望出现这种行为,可以删除regex中的所有\b。在

示例:

>>> re.match(r'^(?!.*\bo?clock\b).*\btimes\b', a)
>>> re.match(r'^(?!.*\bo?clock\b).*\btimes\b', b)
<_sre.SRE_Match object at 0x7fc1f96cc718>

相关问题 更多 >