我有一个包含很多句子的(正在运行的)文本。我有一个正则表达式,它能够提取以句号、问号或感叹号结尾的句子。一个句子的结尾必须跟在下一个句子的开头(空格/制表符/换行符和大写字母或数字)。我读取了存储在数据中的字符串并调用了正则表达式。
basic_pat = re.compile(r"[(']?\w.+[)']?[?.!](?=\s+[A-Z\d])")
result = basic_pat.findall(data)
如果我们不考虑缩写情况,这个正则表达式似乎是有效的。在文本中,我可能还有一些不以句号结尾的章节文本。例如:
这是第一章
这里是第一句话。这是第二句话。这里是第三个发送的ID。这是第四次发送...
我的问题是是否有可能有一个只读取章节文本的正则表达式以及一个读取句子的正则表达式。这些章节是一行中没有句号的松散文本。常规句子可能涵盖几行。也就是说,句子也可以在一行中包含没有句点的文本。是否可以用正则表达式区分这两种情况(章节与句子)?