按新行和大写字母的正则表达式拆分

罗汉

我一直在努力用Python中的regex表达式拆分字符串。

我有一个加载的文本文件,其格式为:

"Peter went to the gym; \nhe worked out for two hours \nKyle ate lunch 
 at Kate's house. Kyle went home at 9. \nSome other sentence 
 here\n\u2022Here's a bulleted line"

我想得到以下输出:

['Peter went to the gym; he worked out for two hours','Kyle ate lunch 
at Kate's house. He went home at 9.', 'Some other sentence here', 
'\u2022Here's a bulleted line']

我正在寻找一个新行和Python中的大写字母或项目符号点来分割我的字符串。

我已经尝试解决问题的前半部分,只用换行和大写字母将我的字符串分开。

这是我到目前为止的内容:

print re.findall(r'\n[A-Z][a-z]+',str,re.M)

这给了我:

[u'\nKyle', u'\nSome']

这只是第一个字。我已经尝试过该正则表达式的变体,但是我不知道如何获得其余的内容。

我假设也要以短划线分割,我只需要包含一个OR正则表达式,其格式与大写字母分割的正则表达式相同。这是最好的方法吗?

我希望这是有道理的,如果我的问题仍然不清楚,我们将感到抱歉。:)

阿努巴瓦

您可以使用此split功能:

>>> str = u"Peter went to the gym; \nhe worked out for two hours \nKyle ate lunch at Kate's house. Kyle went home at 9. \nSome other sentence here\n\u2022Here's a bulleted line"
>>> print re.split(u'\n(?=\u2022|[A-Z])', str)

[u'Peter went to the gym; \nhe worked out for two hours ',
 u"Kyle ate lunch at Kate's house. Kyle went home at 9. ",
 u'Some other sentence here',
 u"\u2022Here's a bulleted line"]

代码演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用符号和大写字母在Python正则表达式中拆分

大写字母的Java正则表达式

正则表达式按大写字母和缩写首字母的句点组合

正则表达式:防止拆分后续大写字母

Python正则表达式可同时分割数字和大写字母

允许以大写字母和小写字母开头的正则表达式是什么?

替换小写字母,句号和大写字母的正则表达式将是什么?

由正则表达式首字母大写字母的单词在循环之间拆分

如何编写一个捕获大写字母和标题大写字母开始的正则表达式?

正则表达式以一行中的大写字母开头和结尾,在大写的单行单词中多行

正则表达式用于替换数字大写字母旁边的字母

正则表达式模式-用数字和连字符组合匹配大写字母

如何选择包含以大写字母开头和正则表达式开头的单词的字符串?

带有数字和大写字母的字符串的正则表达式匹配失败

正则表达式,用于匹配大写字母和破折号,后跟逗号

正则表达式,包含2个大写字母和3个数字

正则表达式以匹配具有混合大写字母和\ n的字符串

字符串中大写字母的正则表达式

R:正则表达式以strsplit分隔(查找“,”,后跟大写字母)

使用正则表达式无法在URL中找到大写字母

正则表达式仅匹配2个大写字母的字符串

使用正则表达式查找 Google Docs 中是否有大写字母

正则表达式:删除带有大写字母的希腊语单词

VS代码正则表达式仅搜索大写字母

正则表达式-自定义命令+大写字母

正则表达式以大写字母开头,长度小于 70

正则表达式-选择以大写字母开头的连续单词

Python正则表达式,如何搜索以大写字母开头的单词?

两个或多个连续或非连续大写字母的正则表达式