首页 > 解决方案 > 特殊字符转字符串

问题描述

正则表达式对我来说是新的。是否可以在字符串中的单词的前面和结尾添加'?

我有多个字符串(eg: str1 = "abc +xyz")。为此,我想将 ' 添加到字符串中存在的单词中(例如:str1 = "abc+xyz"必须转换为str1 = "'abc' +'xyz'")。

input:
str1 = "(abc +xyz)"
str2 = "rc+op"
str3 = "(er+ut)*yu"

预期输出:

str1 = "('abc' +'xyz')"
str2 = "'rc'+'op'"
str3 = "('er'+'ut')*'yu'"

标签: pythonstring

解决方案


这是你想要的吗?

strings = ["df[abc] +df[xyz]", "(df[rc]+df[op]", "(df[er]+df[ut])*df[yu]"]
print("\n".join(s.replace("[", "['").replace("]", "']") for s in strings))

输出:

df['abc'] +df['xyz']
(df['rc']+df['op']
(df['er']+df['ut'])*df['yu']

如果你想用正则表达式来做这件事,这里有一种方法:

import re

strings = ["df[abc] +df[xyz]", "(df[rc]+df[op]", "(df[er]+df[ut])*df[yu]"]

pattern = re.compile(r"\[(.*?)\]")
print("\n".join(pattern.sub(r"['\1']", s) for s in strings))

推荐阅读