匹配一个senten

2024-04-27 02:39:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一些课文切碎成句子。你知道吗

我希望将所有文本匹配到:句点后接空格,问号后接空格,感叹号后接空格,以一种不贪婪的方式。你知道吗

此外,标点符号可能出现在字符串的最末端,或者后面紧跟着a/r/n。你知道吗

这几乎可以做到:

([^\.\?\!]*)

但我缺少表达的空间。我该怎么解决这个问题?你知道吗

示例:

I' a.m not. So? Sure about this! Actually.应该给出:

I' a.m not
So
Sure about this
Actually

Tags: 文本so方式notthis句子about空格
3条回答

试试这个:

(.*?[!\.\?] )

*付出一切

[]是这些字符中的任何一个吗

然后()给您一个组来引用,这样您就可以得到匹配。你知道吗

您可以通过使用positive lookahead assertions来实现这些条件。你知道吗

[^.?!]+(?=[.?!] )

here on Regexr。你知道吗

当你看演示时,一行末尾没有空格的句子是不匹配的。您可以通过添加带有Anchor ^{}alternation并使用修饰符m(使$与行的结尾匹配)来解决此问题:

[^.?!]+(?=[.?!](?: |$))

看到了吗here on Regexr

将非贪婪匹配与s look ahead结合使用:

^.*?(?=[.!?]( |$))

请注意,当这些字符位于character类[...]中时,您不必转义它们。你知道吗

相关问题 更多 >