繁体   English   中英

Python正则表达式取代了某些模式的位置

[英]Python regex substitute from some position of pattern

我有一个功能:

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'解释为一个特殊的反斜杠字符; 你需要使用一个原始字符串 ,这可以通过在字符串之前添加一个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'

试试这个:

regcom = re.compile('\s+Word\s+', re.UNICODE)
print regcom.sub(u'Word', u'This is a     Word     ')
u'This is aWord'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM