Python 正则表达式:Don';不匹配已经是单词一部分的字符串

Python 正则表达式:Don';不匹配已经是单词一部分的字符串,python,regex,Python,Regex,这听起来很简单,所以我想我可能遗漏了一些东西 假设我想使用正则表达式来匹配字符串“cat”,我可以很好地做到这一点,但是,我不想匹配“concatenate”,例如,或任何其他包含“cat”的单词,我只想单独匹配“cat” 我将如何实现这一点?我考虑了如下情况: (CAT | CAT |)CAT |)(* 但这似乎并不正确。如果“Cat”是句子/行中的第一个单词,我不能在两边加空格 有没有办法用正则表达式排除字符?类似于“不是A-z或“cat”两边都是0-9”之类的词?试试单词边界: /\bca

这听起来很简单,所以我想我可能遗漏了一些东西

假设我想使用正则表达式来匹配字符串“cat”,我可以很好地做到这一点,但是,我不想匹配“concatenate”,例如,或任何其他包含“cat”的单词,我只想单独匹配“cat”

我将如何实现这一点?我考虑了如下情况:

(CAT | CAT |)CAT |)(*

但这似乎并不正确。如果“Cat”是句子/行中的第一个单词,我不能在两边加空格

有没有办法用正则表达式排除字符?类似于“不是A-z或“cat”两边都是0-9”之类的词?

试试单词边界:

/\bcat\b/gi


A,
\b
,本质上是一种查找单词字符后跟非单词字符的方法,反之亦然(
\w\w |\w\w | ^\w | \w$
)。

尝试单词边界:

/\bcat\b/gi



A,
\b
,本质上是一个查找单词字符后跟非单词字符或反之亦然(
\w\w | \w\w | ^\w | \w$
)。

您可以使用单词边界:

\bcat\b
如果要仅禁止某些字符,请使用lookarounds:

(?<![a-zA-Z0-9])cat(?![a-zA-Z0-9])

(?您可以只使用单词边界:

\bcat\b
如果要仅禁止某些字符,请使用lookarounds:

(?<![a-zA-Z0-9])cat(?![a-zA-Z0-9])

(?你的正则表达式风格是什么?你使用什么语言/工具?这将在Python程序中使用。你的正则表达式风格是什么?你使用什么语言/工具?这将在Python程序中使用。单词边界是我一直在寻找的,非常感谢!当堆栈溢出允许时,我会接受这个答案。单词边界是我一直在寻找的非常感谢!当堆栈溢出允许时,我将接受这个答案。