我知道如何替换python中的东西,但是我已经做到了,但是我无法正常工作,找不到任何东西。
我已经补充了以下内容:
SomeVar.replace("-", "/")
但是现在我想在/
或-
_
是之间切换文本位置,就像这样:
这就是我所拥有的
text1/text2
这就是我所需要的
text2/text1
这里的问题是我在{MyText}
这样的API中有一个占位符,所以我们不知道text1
或text2
是什么。
我尝试过
a = PosibleText1
b = PossibleText2
c = {MyText}
c.replace(a, b)
此处的问题它仅将文本替换为另一文本,但不要将/
周围的文本位置(如text1/text2
切换为text2/text1
另一个大问题是,我在{MyText} Placehoder中有很多可能的不同文本输出。
需要某种东西可以识别/
并说出/
之前和之后的文本转换位置,无论文本是什么。如果有人有一个主意,谢谢您!
答案 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)