<p>您可以使用下面的正则表达式来验证字符串是否包含前面没有单词“owner”的单词“dog”</p>
<pre><code>^(?:(?!\bowner\b).)*\bdog\b
</code></pre>
<p><a href="https://regex101.com/r/S8OJgx/1/" rel="nofollow noreferrer">Start your engine!</a><sub><sup><</sup>“\<em>(ツ) </em>/'<sup>>;</sup></sub><a href="https://tio.run/##jY@xDsIwDER3f8XRhQRVLGxIqCviFwhICYSmAuLKKar4@pIWiQExMNrv7uxrn13guBqG5t6ydBBPZEWwwZ6AYschItgEizPXRfm1czd7usLGM5xwH0cN@sDJI09e0CRsHzW/fRz9JLCRu5DhJzBPE3h7vq6N8C/w45eCDkRjF5kfVbVW1cy4yWKcXuqFcVlj3JzowoKEJiJXX@fwVprYqVTCMd@U@GXyVk5BSYmkNTQNwws" rel="nofollow noreferrer">Python code</a></p>
<p>Python的正则表达式引擎执行以下操作</p>
<pre><code>^ : anchor match to beginning of string
(?: : begin a non-capture group
(?!\bowner\b) : use a negative lookahead to assert that the current
position in the string is not followed by "owner"
. : match a character
) : end non-capture group
* : execute non-capture group 0+ times
\bdog\b : match 'dog' surrounded by word boundaries
</code></pre>
<p>匹配不以非法单词开头的单个字符序列的技术称为<a href="https://www.rexegg.com/regex-quantifiers.html#tempered_greed" rel="nofollow noreferrer">Tempered Greedy Token Solution</a></p>