[英]Get string until a particular type of string is encountered
我对python和整个编程还很陌生。 只是要学习我的ABC。 假设我有一个像这样的字符串。
s = "DEALER:'S up, Bubbless? BUBBLES: Hey. DEALER: Well, there you go. JUNKIE: Well, what you got?DEALER: I got some starters.";
我希望在遇到结尾带有大写字母和冒号(:)的单词时结束字符串。 然后创建一个新的字符串来存储另一个字符串。 对于上面的字符串,我会得到
s1 = "DEALER:'S up, Bubbless?
s2 = "BUBBLES: Hey."
s3 = "DEALER: Well, there you go."
等等..
这是我获取此类单词的正则表达式代码。
p = re.compile('([A-Z]*):')
s = set(p.findall(l))
我已经坚持了一段时间。 我尝试谷歌搜索,但无济于事。 任何帮助将不胜感激。 谢谢。
这是您需要的正则表达式:
[AZ]+:.*?(?=[AZ]+:|$)
各部分的说明:
[AZ]+:
匹配扬声器 .*?
符合他们说的话; 使用?
(非贪婪),因此仅与下一位讲话者匹配 (?=[AZ]+:|$)
断言,在讲话者的行之后,我们有下一个讲话者或字符串的末尾( (?=)
是一个正向超前,它仅进行断言而不会放入匹配的字符串)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.