操作字符串,python

Gus*_*sto 0 python split tokenize

如何定义一个带字符串(句子)的函数,并在句点后面插入一个额外的空格(如果句点后面紧跟一个字母).

sent = "This is a test.Start testing!"
def normal(sent):
    list_of_words = sent.split()
    ...
Run Code Online (Sandbox Code Playgroud)

这应该打印出来

"这是一个测试.开始测试!"

我想我应该用split()一个字符串制作一个列表,但接下来呢?

PS解决方案必须尽可能简单.

Ste*_*ski 8

使用re.sub.您的正则表达式将匹配句点(\.)后跟字母([a-zA-Z]).您的替换字符串将包含对第二组(\ 2)的引用,这是正则表达式中匹配的字母.

>>> import re
>>> re.sub(r'\.([a-zA-Z])', r'. \1', 'This is a test.This is a test. 4.5 balloons.')
'This is a test. This is a test. 4.5 balloons'
Run Code Online (Sandbox Code Playgroud)

请注意[a-zA-Z]正则表达式的选择.这只匹配字母.我们不使用,\w因为它会将空格插入十进制数.