从使用re.sub。删除特定字符的文本

时间:2017-11-09 18:23:51

标签: python regex

m ='. Kansas City has a population of 475378. Local time in Kansas City is CST.'
d = re.sub('..*?.', '', m)
print(d)

我正在尝试删除两个句点之间的界限。它给了我相同的输出我该怎么纠正它?

1 个答案:

答案 0 :(得分:1)

你需要用反斜杠来逃避点,它们意味着任何角色。你也最好使用负字符类而不是。*?正如你正在做的那样,'全部/任何非点':

[^.]*

以下是您要求的示例。

import re

m ='. Kansas City has a population of 475378. Local time in Kansas City is CST.'
d = re.sub('\.[^.]*\.', '', m)
print(d)

如果您想保留期限,可以直接执行此操作:

d = re.sub('\.[^.]*\.', '..', m)

http://regex101.com/是一个非常好的网站,可以使用你的正则表达式来完全调整你想要它的工作方式。祝你好运!