在python中替换文本位置

时间:2018-09-24 08:43:34

标签: python

我知道如何替换python中的东西,但是我已经做到了,但是我无法正常工作,找不到任何东西。

我已经补充了以下内容:

SomeVar.replace("-", "/")

但是现在我想在/- _是之间切换文本位置,就像这样:

这就是我所拥有的

text1/text2

这就是我所需要的

text2/text1

这里的问题是我在{MyText}这样的API中有一个占位符,所以我们不知道text1text2是什么。

我尝试过

a = PosibleText1
b = PossibleText2
c = {MyText}
c.replace(a, b)

此处的问题它仅将文本替换为另一文本,但不要将/周围的文本位置(如text1/text2切换为text2/text1

另一个大问题是,我在{MyText} Placehoder中有很多可能的不同文本输出。

需要某种东西可以识别/并说出/之前和之后的文本转换位置,无论文本是什么。如果有人有一个主意,谢谢您!

5 个答案:

答案 0 :(得分:1)

字符串是不可变的,因此您无需切换位置,而是创建一个新的位置。这是可以做到的:

# Split with the "/"
s = "text1/text2".split("/")
Out[2]: ['text1', 'text2']

# Create a new string
new = s[1] + "/" + s[0]

可以根据需要用任意数量的text_i乘以i /来概括。

答案 1 :(得分:1)

希望我能正确理解您的问题。要交换斜杠周围的任何非空格字符序列的位置,可以使用正则表达式:

D

输出:

import re
s = "a/b 3/4 hello/goodbye blah blah this/again"
print(re.sub(r"([^\s/]+)/([^\s/]+)", r"\2/\1", s))

答案 2 :(得分:1)

您可以使用'/'将字符串分割成一个列表,然后将其解压缩到str.format方法中,但各项以相反的顺序输出:

c = '{1}/{0}'.format(*c.split('/'))

答案 3 :(得分:1)

您可以将'/'的字符串拆分为一个列表,并在反转后使用'/'将列表加入:

c = '/'.join(c.split('/')[::-1])

答案 4 :(得分:0)

您应该使用format方法来做到这一点,例如:

c = '{}/{}'.format(b, a)