繁体   English   中英

获取字符串,直到遇到特定类型的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM