仅当分隔符存在于字符串上时,才使用两个不同的分隔符拆分 Python 字典中的字符串
Posted
技术标签:
【中文标题】仅当分隔符存在于字符串上时,才使用两个不同的分隔符拆分 Python 字典中的字符串【英文标题】:Split a string in Python dictionary with two different separators only if the separator exist on the string 【发布时间】:2021-07-28 22:45:14 【问题描述】:我有一本字典:
'...': '...',
'unite_fonctionnelle': 'text to keeep',
'...': '...'
在这种情况下,字典很好,但有时需要清理 unite_fonctionnelle
的值,语法始终相同:
'...': '...',
'unite_fonctionnelle' : 'asjbzjqnfknqfsnf<Run>text to keeep</Run>qsdqsdqsdqsfqsfegdhfkdnh',
'...': '...'
当标签<Run>
和</Run>
出现在字符串中时,我想转换unite_fonctionnelle
的值,以仅保留两个标签之间的文本。如何使用 split() 做到这一点?
【问题讨论】:
见:***.com/questions/3368969/…。 【参考方案1】:您可以在这里简单地使用正则表达式。
试试这个:
import re
for key, value in dic.items():
if '<Run>' in str(value):
output = re.search('<Run>(.*)</Run>', str(value))
print(output.group(1))
【讨论】:
谢谢,我将它改编为我的代码,它运行良好! 欢迎 :) @Howins【参考方案2】:给定d
您的字典:
for k, v in d.items():
if '<Run>' in v:
d[k] = v.split('<Run>')[1].split('</Run>')[0]
【讨论】:
【参考方案3】:这是我的方法。
import re
dic =
'unite_fonctionnelle' : 'asjbzjqnfknqfsnf<Run>text to keeep</Run>qsdqsdqsdqsfqsfegdhfkdnh'
for key,val in dic.items():
if(all(x in val for x in ['<Run>','</Run>'])):dic[key] = re.split('<Run>|</Run>',val)[1]
【讨论】:
以上是关于仅当分隔符存在于字符串上时,才使用两个不同的分隔符拆分 Python 字典中的字符串的主要内容,如果未能解决你的问题,请参考以下文章