Python正则表达式:用空格替换点和符号
我要替换点/?/!后跟分隔(如果有)到特征线字符Python正则表达式:用空格替换点和符号,python,regex,Python,Regex,我要替换点/?/!后跟分隔(如果有)到特征线字符\n,并消除空白。 所以在:helloworld的情况下。很好。我希望它是你好世界。\n很好。\n 这就是我的想法(但它不起作用,否则我不会写这个问题哈?) 谢谢 您是否尝试过替换 print text.replace('. ','.\n').replace('? ','?\n').replace('! ','!\n') 您是否尝试过更换 print text.replace('. ','.\n').replace('? ','?\n').rep
\n
,并消除空白。
所以在:helloworld的情况下。很好。
我希望它是你好世界。\n很好。\n
这就是我的想法(但它不起作用,否则我不会写这个问题哈?)
谢谢 您是否尝试过
替换
print text.replace('. ','.\n').replace('? ','?\n').replace('! ','!\n')
您是否尝试过更换
print text.replace('. ','.\n').replace('? ','?\n').replace('! ','!\n')
将空格或字符串结尾与后面的正面外观匹配:
re.sub(r'(?<=[.?!])( +|\Z)', r'\n', text)
否则会收到太多的新行
演示:
>>重新导入
>>>text=“你好,世界,很好。”
>>>re.sub(r'(?匹配空格或后面有正面外观的字符串结尾:
re.sub(r'(?<=[.?!])( +|\Z)', r'\n', text)
否则会收到太多的新行
演示:
>>重新导入
>>>text=“你好,世界,很好。”
>>>re.sub(r’(?无环视):
>>> import re
>>> line="hello world! What? It's nice."
>>> re.sub(r'([.?!]+) *', r'\1\n', line) # Capture punctuations; discard spaces
"hello world!\nWhat?\nIt's nice.\n"
>>> line="hello world! His thoughts trailed away... What?"
>>> re.sub(r'([.?!]+) *', r'\1\n', line)
'hello world!\nHis thoughts trailed away...\nWhat?\n'
没有环顾:
>>> import re
>>> line="hello world! What? It's nice."
>>> re.sub(r'([.?!]+) *', r'\1\n', line) # Capture punctuations; discard spaces
"hello world!\nWhat?\nIt's nice.\n"
>>> line="hello world! His thoughts trailed away... What?"
>>> re.sub(r'([.?!]+) *', r'\1\n', line)
'hello world!\nHis thoughts trailed away...\nWhat?\n'
为什么示例字符串中的一个空格被删除了,而另一个没有被删除?您是指helloworld.\n是指还是helloworld.\n这很好。\n
?它没有跟在我想要替换的任何点或其他字符后面。为什么示例字符串中的一个空格被删除,而另一个没有被删除?您是指helloworld.\n是指helloworld.\n是指>或者你好世界。\n很好。\n
?它没有跟随任何我想被替换的点或其他字符。但是如果有多个空格,它将不会被替换。只有第一个空格会被替换。但是如果有多个空格,它将不会被替换。只有第一个会被替换。这也将与“他的思想慢慢消失了…”
并在每个点后插入换行符。然后,我的也一样。@MartijnPietters您提到的点应该在上面的编辑中处理。这也将与“他的思想逐渐消失…”
并在每个点后插入换行符。然后,我的也将如此。@MartijnPieter您提到的点应该在上面的编辑中处理。