我正在尝试使用C++正则表达式从段落中获得正确的句子。
"You are welcome, most noble Sorceress, to the land of the Munchkins." Dorothy listened to this speech "carefully" with wonder.
这就是我正在处理的段落。我想让句子只以大写字母开头,而不是用引号括起来。因此,结果只能是:'Dorothy listened to this speech "carefully" with wonder.'
但我得到的是'Munchkins." Dorothy listened to this speech "carefully" with wonder.'
,因为Munchkins前面的字母表是大写的,我没有任何想法从这里开始。有谁有主意吗?
下面是我的正则表达式代码。
[^"][A-Z]+[-:?!.,"\s\w]*(?=[!?.])
发布于 2021-02-19 05:00:41
像下面这样的东西对你有用吗?
(?<=^|[".?!] )[A-Z].+?[!?.]
因此,基本上匹配一个大写字母,然后是一串字符,然后是!
、?
或.
。只有当句子是行首,或者前面有?
、.
、"
或!
后跟一个空格时,它才应该匹配句子。
(?<=^|[".?!] )
-向后看:确保在匹配之前是行首,或者后跟space.[A-Z].+?
的"
、.
、?
或!
-匹配大写字母,然后所有字符lazily.[!?.]
-匹配句子结束符。https://stackoverflow.com/questions/66240064
复制相似问题