反转交替正则表达式

时间:2013-10-21 08:00:42

标签: python regex

我有一个替换正则表达式,我想要反转,但似乎无法让它工作,它看起来像这样:

( |\w+-\w+| \+\w+|\w)

将提取所有特殊字符,除了 - 在单词的中间或单词前面的+。问题是,我想删除这个正则表达式未涵盖的所有内容,但是放置的简单解决方案?!在这之前不起作用。

示例输入:-xxx xxx- xx-xx +xxx xxx+ xx+xx
期望的输出:xxx xxx xx-xx +xxx xxx xxxx

感谢您的帮助,

的Mattias

1 个答案:

答案 0 :(得分:2)

你的问题有点不清楚,你在找这个吗?

a = "abc def,ghi remove - this keep-that foo + bar +keep!"
import re
print re.sub(r'[^\w\s+-]|(?<!\w)-(?!\w)|\+(?!\w)', '', a)
#abc defghi remove  this keep-that foo  bar +keep

更准确的正则表达式:

[^\w\s+-]|^-|-$|\+$|(?<=\W)-|-(?=\W)|\+(?=\W)|(?<=\w)\+