我想把一些文字切成句子。
我希望以非贪婪的方式匹配所有文本,直到:句号后面跟着空格,问号后面跟着空格,或者感叹号后面跟着空格。
此外,标点符号可以在字符串的末尾找到,或者后面跟着a /r/n。
这几乎可以做到:
([^\.\?\!]*)但我错过了表情中的空格。我该怎么解决这个问题?
示例:
I' a.m not. So? Sure about this! Actually.应提供:
I' a.m not
So
Sure about this
Actually发布于 2013-09-26 06:57:38
您可以通过使用积极的前瞻性断言来达到这样的条件。
[^.?!]+(?=[.?!] )看吧,在Regexr上。
当您查看演示时,行尾没有以下空格的句子是不匹配的。您可以通过添加带有交替的$并使用修饰符m (使$与行尾匹配)来修复此问题:
[^.?!]+(?=[.?!](?: |$))看吧,在Regexr上
发布于 2013-09-26 06:54:59
试试这个:
(.*?[!\.\?] )
.*给出了所有,
[]这些字符中的任何一个
然后()为您提供一个可引用的组,这样您就可以得到匹配。
发布于 2013-09-26 06:55:10
使用非贪婪的匹配和s向前看:
^.*?(?=[.!?]( |$))请注意,当这些字符位于字符类[...]中时,不必转义它们。
https://stackoverflow.com/questions/19021240
复制相似问题