从模式的某个位置替换 Python 正则表达式

标签 python regex

我有一个函数:

find = re.compile(ur"\s+(Word)\s+", flags = re.U)
text = find.sub('\1', text)

我想找到像这样的模式“Word”(带有前缀/后缀空格)并将其替换为“Word”(没有这些空格)。在 ruby 中,我以前用这样的东西做过:

text.gsub('\s+(Word)\s+', '\1')

编辑:我的意思是我需要根据情况使用新字符串或其他内容更改这些空格。

最佳答案

问题是 Python 将你的 '\1' 解释为一个特殊的反斜杠字符;你需要使用 raw string ,这可以通过在字符串前添加一个 r 来完成。变化

find.sub('\1', text)

find.sub(r'\1', text)

例子:

text = "Replace this Word "
find = re.compile(ur"\s+(Word)\s+", flags = re.U)
find.sub(r'\1', text)
# 'Replace thisWord'

关于从模式的某个位置替换 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846076/

相关文章:

python - 将 (OOP) 对象分配给另一个对象

python - 如何扩展 jinja2 内置标签?

python - 根据其他列中的 'NaN' 值在 Pandas Dataframe 中创建一个新列

java - 正则表达式:匹配通配符后跟可变长度的数字

python - 如何在 python 中使用正则表达式在特定单词之前获取特定模式的所有日期或关键字?

java - 正则表达式解析可能由或不由 ; 分隔的字符串分成几组

python - 计算某些文本中多字子串的出现次数

python - 需要正则表达式搜索/替换帮助,Python

python - 运行 uwsgi 和 nginx (centos) 的 python 应用程序出现 502 Bad Gateway 错误

python - 通过For循环修改Pandas系列