我想将AEM放入括号中,以便文本看起来像:Agnico Eagle Mines Limited(AEM)
text = "Agnico Eagle Mines Limited AEM"
def add_brackets(test):
for word in test:
if word.isupper():
word = "(" + word + ")"
print(test)
print(add_brackets(text))
代码有什么问题?我收到原文。
答案 0 :(得分:1)
两件事,1你是每个角色检查,而不是每个字。 2你没有修改text
你只是设置word
而没有做任何事情。
text = "Agnico Eagle Mines Limited AEM"
def add_brackets(test):
outstr = ""
for word in test.split(" "):
if word.isupper():
outstr += " (" + word + ")"
else:
outstr += " " + word
return outstr.strip()
print(add_brackets(text))
编辑:发烧友
text = "Agnico Eagle Mines Limited AEM"
def add_brackets(test):
return " ".join(["({})".format(word) if word.isupper() else word for word in test.split(" ")])
print(add_brackets(text))
答案 1 :(得分:0)
这对于正则表达式替换来说非常简洁:
FIRAuth.auth()?.createUserWithEmail(email!, password: password!, completion: { (user: FIRUser?, error) in
if error == nil {
//registration successful
}else{
//registration failure
}
})
这会在一起查找多个大写字符,两边都有单词边界(如空格),然后用相同的文本(>>> import re
>>> text = "Agnico Eagle Mines Limited AEM"
>>> re.sub(r'\b([A-Z]+)\b', r'(\1)', text)
'Agnico Eagle Mines Limited (AEM)'
)替换匹配的组,并添加括号。
在一个功能中:
\1