假设我们有以下字符串:“1.句子1.句子2?第三句。 如何寻找(并以字符串形式返回)与以下所有情况匹配的模式:
"1. Sentence 1."
"1. Sentence 1. Sentence 2?"
"1. Sentence 1. Sentence 2? Sentence 3!"
图案前面总有个数字, 但后面可能有很多句子。 到目前为止我试过的是
pattern = re.compile("\d.(\s[A-Ö][^.!?]+[.!?])+?")
以及
assignmentText = "".join(pattern.findall(assignment))
其中join
-方法是一个丑陋的黑客,用于从findall
返回的列表中提取字符串,因为list[0]
似乎不起作用(我知道列表中只有一个str
)。
但是,我只收到第一句话,前面没有数字
怎么能修好呢
您可以使用
(?:(?:\d+\.\s+)?[A-Z].*?[.!?]\s*)+
这将输出:
或者,如果您喜欢将它们作为列表中的3个不同项目分开:
这将输出:
相关问题 更多 >
编程相关推荐