1

在文件中:

Hello........girlllllllllll
W.o.W

我试过:

for line in file.split('\n'):
    line = re.sub('[.]+', ' ', line)
    line = re.sub('[.]', '', line)
    print line

结果表明:

 Hello girlllllllllll
 W o W

是否有可能得到如下结果?

 Hello girlllllllllll
 WoW

有什么建议吗?

4

5 回答 5

6

用这个:

for line in file.split('\n'):
    # Replace multiple dots with space
    line = re.sub('\.\.+', ' ', line) 
    # Remove single dots
    line = re.sub('\.', '', line)
    print line
于 2013-07-05T09:39:46.097 回答
3
x = file.read()
print re.sub(r'\.\.+', ' ', x).replace('.', '')
于 2013-07-05T09:41:10.333 回答
2

试试这些:

line = re.sub('\.(?!\.)', '', line)
line = re.sub('\.+', ' ', line)
  1. 替换为空点,后面没有点。
  2. 用空格替换多次出现的点。
于 2013-07-05T09:39:46.453 回答
2
line = re.sub(r'\.{2,}', ' ', line)
line = re.sub(r'\.{1}', '', line)
于 2013-07-05T09:39:48.967 回答
1

如果我很好地理解了您的问题,您希望将多个点替换为空格,但将单个点替换为空字符串。

您应该简单地将第一条规则从 更改[.]+[.]{2,}。这样,规则只有在找到两个或更多点时才会匹配,而将单个点由第二条规则管理。

for line in file.split('\n'):
    line = re.sub('[.]{2,}', ' ', line)
    line = re.sub('[.]', '', line)
    print line
于 2013-07-05T09:43:32.407 回答