我对python还不熟悉,所以我想对此有一些想法。我正在编写一个函数来查找句子中匹配的单词模式,并替换仅匹配的单词中的空格。
输入:
(C)变量< var_CONST1(例-125(N)) [AAA BBB有]和[技術企画]和[AAA BBB CCC]
预期输出:
(C)变量< var_CONST1(例-125(N)) [AAA-BBB有]和[技術企画]和[AAA-BBB-CCC]
在示例中,“[AAA BBB有]”和“[AAA BBB]”中的空格应替换为"-“。
我在下面创建了解决问题的代码。然而,我想知道这是否是一种更好/更优雅的写作方式。
import re
text = "(c)variable < var_CONST1(例 -125(N)) 【AAA BBB有】AND【技術企画】AND 【AAA BBB CCC】"
match_list = re.findall(r"【[\w\s]+】", text)
match_list = [w.replace(" ", "-") for w in match_list]
tmp_txt = re.sub(r"【[\w\s]+】", " tkn ", text).split()
new_txt = ""
for txt in tmp_txt:
if txt == "tkn":
new_txt = new_txt + " " + match_list[0]
match_list.pop(0)
else:
new_txt = new_txt + " " + txt
print(new_txt)非常感谢。
发布于 2022-07-27 06:17:49
我们可以在这里使用re.sub和回调函数,只针对【...】内部出现的空间。
inp = "(c)variable < var_CONST1(例 -125(N)) 【AAA BBB有】AND【技術企画】AND【AAA BBB CCC】"
output = re.sub(r'【.*?】', lambda m: m.group().replace(' ', '-'), inp)
print(output)这些指纹:
(c)variable < var_CONST1(例 -125(N)) 【AAA-BBB有】AND【技術企画】AND【AAA-BBB-CCC】https://stackoverflow.com/questions/73133027
复制相似问题