【发布时间】:2018-09-09 03:08:44
【问题描述】:
p = re.compile(r'((?<=[\.\?!]\s)(\w+)|(^\w+))')
def cap(match):
return(match.group().capitalize())
capitalized_1 = p.sub(cap, Inputfile)
with codecs.open('o.txt', mode="w", encoding="utf_8") as file:
file.write(capitalized_1)
我正在使用正则表达式将 . 之后的字母大写。 ? !上面的代码就是这样做的。但它会去掉段落标记(分页符)并将其合并为一个大段落。
如何保留段落标记并防止结块?
输入文件:
在插入选项卡上,画廊包含旨在与文档的整体外观相协调的项目。您可以使用这些库插入表格、页眉、页脚、列表、封面和其他文档构建块。当您创建图片、图表或图表时,它们还会与您当前的文档外观相协调。
您可以通过从主页选项卡上的快速样式库中选择所选文本的外观来轻松更改文档文本中所选文本的格式。您还可以使用主页选项卡上的其他控件直接格式化文本。大多数控件都提供了使用当前主题外观或使用您直接指定的格式的选择。
电流输出
在插入选项卡上,画廊包括旨在与文档的整体外观相协调的项目。您可以使用这些库来插入表格、页眉、页脚、列表、封面和其他文档构建块。当您创建图片、图表或图表时,它们也会与您当前的文档外观相协调。通过从主页选项卡上的快速样式库中选择所选文本的外观,您可以轻松更改文档文本中所选文本的格式。您还可以使用主页选项卡上的其他控件直接设置文本格式。大多数控件都提供了使用当前主题外观或使用您直接指定的格式的选择。
预期输出:
在插入选项卡上,画廊包括旨在与文档的整体外观相协调的项目。您可以使用这些库来插入表格、页眉、页脚、列表、封面和其他文档构建块。当您创建图片、图表或图表时,它们还会与您当前的文档外观相协调。
通过从主页选项卡上的快速样式库中选择所选文本的外观,您可以轻松更改文档文本中所选文本的格式。您还可以使用主页选项卡上的其他控件直接设置文本格式。大多数控件都提供了使用当前主题外观或使用您直接指定的格式的选择。
编辑 1:
import re,codecs
def capitalize(match):
return ''.join([match.group(1), match.group(2).capitalize()])
with codecs.open('i.txt', encoding='utf-8') as f:
text = f.read()
pattern = re.compile('(^|[.?!]\s+)(\w+)?')
print(pattern.sub(capitalize, text))
当我尝试根据答案 1 方法从文件中读取它时引发错误。
return ''.join([match.group(1), match.group(2).capitalize()])
AttributeError: 'NoneType' object has no attribute 'capitalize'
【问题讨论】:
-
明白了。只需将块放在引号中以使其清楚。
-
是否可以选择逐行拆分文件,还是出于某种原因您必须这样做是正则表达式?
标签: python regex capitalization