将单词移至字符串末尾

时间:2018-06-21 08:01:02

标签: python regex

我有如下字符串列表:

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']

2 个答案:

答案 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']