正则表达式替换一个单词中间的连字符

时间:2011-08-25 20:52:48

标签: python regex python-3.x

如何使用python3和re.sub()替换单词中间的连字符?

“ - ice-cream- - hang-out” - > “-ice cream- - 闲逛”

谢谢,

百里

编辑:我试过

self.lines = re.sub(r'\w(-)\w', " ", self.lines)
,但不确定如何继续。我喜欢/ b的做法。

2 个答案:

答案 0 :(得分:4)

re.sub(pattern, repl, string[, count, flags])请参阅docs.python.org

您的模式为r'\b-\b'

查看模式here on Regexr

并用空格(' '

替换它

正则表达式字符串之前的r可以解析原始字符串,这意味着您不需要双重转义。

\b是一个单词边界,这意味着当前后有单词字符时,它会匹配-

答案 1 :(得分:1)

>>> re.sub(r'(\w)-(\w)', lambda m: '%s %s' % (m.groups()), '-ice-cream- hang-out')
'-ice cream- hang out'