常用表达式 - 以某些特定内容开始/结束并在中间重复模式

2024-05-15 00:14:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个正则表达式,用以下语法匹配名称

"Show log 8006, Conan O'Brian talks about Freddy Mercury, Evan.R Wood, Chan Kong-sang and McDonald?, Great People."

第一组:柯南·奥布赖恩

第2组:Freddy Mercury

第3组:埃文·R·伍德

第四组:陈江生

第五组:麦当劳

一致性是“Show log???”,“Name”谈论“Name”和“Name”,“Topic”

名称的数量可能会有所不同,至少有3个名称,没有最大值


Tags: name名称logshow语法chanaboutmercury
1条回答
网友
1楼 · 发布于 2024-05-15 00:14:46

Python非常棒,但不要从正则表达式开始伤害自己。
没有它们,您的任务实际上更容易完成:

string = """
Lorem ipsum 
Show log 8006, Conan O'Brian talks about Freddy Mercury, Evan.R Wood, Chan Kong-sang and McDonald?, Great People.
Lorem ipsum
"""

for line in string.split("\n"):
    if line.startswith('Show log'):
        parts = line.replace(' talks about ', ', ').replace(' and ', ', ').split(", ")
        print(parts[1:])

这就产生了

["Conan O'Brian", 'Freddy Mercury', 'Evan.R Wood', 'Chan Kong-sang', 'McDonald?', 'Great People.']

相关问题 更多 >

    热门问题