首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python从双引号中提取单引号

Python从双引号中提取单引号
EN

Stack Overflow用户
提问于 2019-08-15 02:41:59
回答 2查看 47关注 0票数 0

我有一个这样的文本列表:

代码语言:javascript
复制
"DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"
"DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"
'DATA - SOM THIN Escalation'
'DATA - SOM THIN HEARTBEAT Escalation'
"DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"
"DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"
"DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"

我想从""中提取字符串的''部分。做这件事最好的方法是什么?'"有什么区别?正如您所看到的,一些原始文本显示为',而另一些则具有"包装器。

EN

回答 2

Stack Overflow用户

发布于 2019-08-15 03:23:47

我有一些东西是有效的,欢迎改进:

代码语言:javascript
复制
for rule in rules:
    print(rule)
    name = re.findall("'(.*)'", rule)
    if name:
        print(name[0])
    else:
        print(rule)

输出类似于:(第一行输入,第二行输出。)

代码语言:javascript
复制
"DATA  - Critical/Major DATA Alerts to 'DATA  NM Escalation'"
'DATA  NM Escalation'
"DATA  - Critical/Major DATA Alerts to 'DATA  NM Escalation'"
'DATA  NM Escalation'
"DATA  - Critical/Major DATA DATA Alerts to 'DATA  NM Escalation'"
'DATA  NM Escalation'
"DATA  - Critical/Major DATA DATA Alerts to 'DATA  NM Escalation'"
'DATA  NM Escalation'
'DATA - SOM THIN Escalation'
'DATA - SOM THIN Escalation'
'DATA - SOM THIN HEARTBEAT Escalation'
'DATA - SOM THIN HEARTBEAT Escalation'
"DATA - Critical/Major DATA DATA Alerts to 'DATA NM Escalation'"
'DATA NM Escalation'
"DATA - Critical/Major DATA DATA Alerts to 'DATA NM Escalation'"
'DATA NM Escalation'
票数 0
EN

Stack Overflow用户

发布于 2019-08-15 04:27:19

不使用RegEx:

代码语言:javascript
复制
lst = ["DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'",
       "DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'",
       'DATA - SOM THIN Escalation', 
       'DATA - SOM THIN HEARTBEAT Escalation',
       "DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'",
       "DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'",
       "DATA - Critical/Major DATA Alerts to 'DATA NM Escalation'"]

for element in lst:
    start_idx = element.find('\'')
    if start_idx == -1:
        start_idx = 0
    end_idx = element.find('\'', start_idx+1, len(element))
    if end_idx == -1:
        end_idx = len(element)
        print(element[start_idx:end_idx])
    else:
        print(element[start_idx+1:end_idx])

输出:

代码语言:javascript
复制
DATA NM Escalation
DATA NM Escalation
DATA - SOM THIN Escalation
DATA - SOM THIN HEARTBEAT Escalation
DATA NM Escalation
DATA NM Escalation
DATA NM Escalation
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57500346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档