gpt4 book ai didi

python - 在文本中的特定位置插入字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:00 25 4
gpt4 key购买 nike

我需要将一些文本转换成 Latex 格式。

123 {\i1}e11 e22{\i0} asa ds dawdas a as<asd a<asd <ads sasdasdasd

我的目标是将 {\i1} 和 {\i0} 之间的所有内容放在 $ 和 $ 中,并在每个单词之间添加一个“\”。

预期结果:

123 $e11 \ e22 $ asa ds dawdas a as<asd a<asd <ads sasdasdasd

或者(这个也行)

123 $e11 \ e22 \ $ asa ds dawdas a as<asd a<asd <ads sasdasdasd

我尝试过的:

text = '123 {\i1}e11 e22{\i0} asa ds dawdas a as<asd a<asd <ads sasdasdasd'
a = re.sub(r'{\\i1}(.*?){\\i0}', r' $\1$', text)

123 $e11 e22$ asa ds dawdas a as

...但是我如何获得中间的那些“\”?

最佳答案

你可以使用

import re
text = '123 {\i1}e11 e22{\i0} asa ds dawdas a as<asd a<asd <ads sasdasdasd'
rx = r'{\\i1}(.*?){\\i0}'
a = re.sub(rx, lambda x: r' ${} $'.format(r" \ ".join(x.group(1).split())), text)
print(a) # => 123 $e11 \ e22 $ asa ds dawdas a as<asd a<asd <ads sasdasdasd

参见 Python demo online .

这里,re.sub(rx, lambda x: r' ${} $'.format(r"\".join(x.group(1).split())), text) 是对 re.sub 的调用,其中第二个参数是 lambda 表达式。匹配作为 x 传递到那里,x.group(1) 是字符串替换模式中 \1 反向引用的“等价物” .它用空格分开,并用空格+反斜杠+空格重新连接,并与两端的空格+美元序列一起插入到结果字符串中,而不是匹配值。

关于python - 在文本中的特定位置插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55425769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com