Skip to main content
 首页 » 编程设计

python之如何使用 Python 中的正则表达式获取最右边的字符加上双引号之间的文本

2025年05月04日23zhoujg

我有一个包含如下内容的 python 列表:

['"Some-text" {12345-ab123-cd456}', '"Some-Another-text2" {54321-ab123-cd456}]' 

我希望得到的结果是:

text, 12345-ab123-cd456 
text2, 54321-ab123-cd456 

到目前为止,我已经设法使用 re 模块从 {} 获取信息:

re.compile(r'.*{(.*)} 

我想要做的是在双引号内的“-”之后获取最右边的文本,添加逗号并获取大括号内的信息。我可以一步完成所有这些吗?在一个正则表达式中?或者最好的方法是什么?

请您参考如下方法:

import re     
lst = ['"Some-text" {12345-ab123-cd456}', '"Some-Another-text2" {54321-ab123-cd456}]'] 
 
regexp = re.compile(r'"\s*.+-(\S+)\s*"\s+{\s*(\S+)\s*}') 
for i in lst: 
    line = re.match(regexp, i) 
    if line: 
        print line.group(1) + ", " + line.group(2) 

输出:

text, 12345-ab123-cd456                                                                                        
text2, 54321-ab123-cd456