我有如下字符串列表:
test = ['ABC 1', 'ABC 2', 'XXX ABC 1', 'XXX ABC 2', 'ABCD 1']
如果字符串中存在“ XXX”,我想将其发送到字符串的末尾,以使其更容易提取相关信息。
如何使用正则表达式将“ XXX”发送到字符串的最后一个单词?
所需的输出是:
out = ['ABC 1', 'ABC 2', 'ABC 1 XXX', 'ABC 2 XXX', 'ABCD 1']
答案 0 :(得分:3)
使用列表理解。
例如:
test = ['ABC 1', 'ABC 2', 'XXX ABC 1', 'XXX ABC 2', 'ABCD 1']
ValtoCheck = "XXX"
test = ["{0} {1}".format(i.replace(ValtoCheck, "").strip(), ValtoCheck) if ValtoCheck in i else i for i in test]
print(test)
输出:
['ABC 1', 'ABC 2', 'ABC 1 XXX', 'ABC 2 XXX', 'ABCD 1']
str.format
根据您的要求重新设置文字i.replace(ValtoCheck, "").strip()
从头开始删除内容答案 1 :(得分:2)
您可以在不使用正则表达式的情况下进行操作。喜欢:
for i in range(len(test)):
if 'XXX' in test[i]:
test[i] = test[i].replace("XXX","").strip()+" XXX" #if XXX present in the list then remote it and then remove white space of both side using strip function and then append XXX at the end of the string.
输出:
['ABC 1', 'ABC 2', 'ABC 1 XXX', 'ABC 2 XXX', 'ABCD 1']