Пример
X=This
Y=That
не соответствует;
ThisWordShouldNotMatchThat
ThisWordShouldNotMatch
WordShouldNotMatch
соответствия;
AWordShouldMatchThat
Я пробовал (?<!...)
, но, похоже, не так просто:)
^(?!This).*That$
В качестве регулярного выражения с свободным интервалом:
^ # Start of string
(?!This) # Assert that "This" can't be matched here
.* # Match the rest of the string
That # making sure we match "That"
$ # right at the end of the string
Это будет соответствовать одному слову, которое соответствует вашим критериям, но только если это слово является единственным входом в регулярное выражение. Если вам нужно найти слова внутри строки многих других слов, используйте
\b(?!This)\w*That\b
\b
- это якорь границы слова, поэтому он совпадает в начале и в конце слова. \w
означает "буквенно-цифровой символ". Если вы также хотите разрешить не-буквенные символы как часть вашего "слова", вместо этого используйте \S
- это будет соответствовать любому, что не является пробелом.
В Python вы можете сделать words = re.findall(r"\b(?!This)\w*That\b", text)
.