Python Regex - 用另一个单词替换特定单词(不带哈希值)

标签 python regex

我只想替换一个字符串中的特定单词。然而,其他一些单词里面有这个词,但我不希望它们被改变。

例如,对于下面的字符串,我只想将 z 字符串中的 x 替换为 y。如何做到这一点?

x = "112-224"
y = "hello"
z = "This is the number 112-224 not #112-224"

当我执行 re.sub(r'\b' + x + r'\b', y, z) 时,我得到 'This is the number hello not #hello '。所以基本上不适用于这个正则表达式。我真的不擅长这个正则表达式的东西。正确的做法是什么?所以,我可以得到这是号码 hello,而不是 #112-224

最佳答案

这个怎么样:

pattern = r'(?<=[\w\s\n\r\^])'+x+r'(?=[\w\s\n\r$])'

完整的代码是:

x = "112-234"
y = "hello"
z = "112-234this is 112-234 not #112-234"

pattern = r'(?<=[\w\s\n\r\^])'+x+r'(?=[\w\s\n\r$])'

在这里,我在正则表达式中使用正向向后查找和正向向前查找,您可以了解有关 here 的更多信息。

正则表达式规定匹配项前面应带有 word character 、空格、换行符或行首,后面应跟空格、单词字符换行符或行尾。

注意:不要忘记在lookbehind中转义克拉^,否则你最终会否定方括号中的所有内容。

关于Python Regex - 用另一个单词替换特定单词(不带哈希值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60238297/

相关文章:

python - 使用Django 汇总Report

python - Matplotlib 直方图按常数因子缩放 y 轴

python - 正则表达式 python 条字符

regex - Awk:如何处理文件夹和子文件夹中的多个 files.txt?

Python将一个变量内的多个列表合并为一个列表

python - 如何列出字符串的相邻字母?

php - 如何向正则表达式添加连字符

javascript - 带有变量和 .Test() 的正则表达式

python - 提取两个特殊字符之间的字母数字字符串

Python - 在不会抛出错误时类型检查正常吗?