问题描述
contains_acronym函数检查文本中是否存在2个或多个用括号括起来的字符或数字,并且至少第一个字符为大写字母(如果是字母),如果满足条件则返回True,否则返回False。例如,“即时消息(IM)是用于基于文本的通信的一组通信技术”,由于(IM)满足匹配条件,因此应返回True。”在此函数中填写正则表达式:
import re
def contains_acronym(text):
pattern = ___
result = re.search(pattern,text)
return result != None
print(contains_acronym("Instant messaging (IM) is a set of communication technologies used for text-based communication")) # True
print(contains_acronym("American Standard Code for @R_642_4045@ion Interchange (ASCII) is a character encoding standard for electronic communication")) # True
print(contains_acronym("Please do NOT enter without permission!")) # False
print(contains_acronym("PostScript is a fourth-generation programming language (4GL)")) # True
print(contains_acronym("Have fun using a self-contained underwater breathing apparatus (Scuba)!")) # True
我尝试了这种模式,但不适用于所有给定的输入情况,
pattern = r"\(([A-Z0-9_]+)\)"
解决方法
最终尝试使用以下模式,并且使用以下代码涵盖了所有上述场景,
import re
def contains_acronym(text):
pattern = r"\([A-Za-z0-9]{2,}\)"
result = re.search(pattern,text)
return result != None
print(contains_acronym("Instant messaging (IM) is a set of communication technologies used for text-based communication")) # True
print(contains_acronym("American Standard Code for Information Interchange (ASCII) is a character encoding standard for electronic communication")) # True
print(contains_acronym("Please do NOT enter without permission!")) # False
print(contains_acronym("PostScript is a fourth-generation programming language (4GL)")) # True
print(contains_acronym("Have fun using a self-contained underwater breathing apparatus (Scuba)!")) # True
,
您好,正则表达式几乎是正确的,只是忘记了它必须具有至少2 ,因此只需将第一个范围设为字符串的恒定部分,然后用
重复相同的匹配即可。带有+(一个或多个)的小写字母
模式= r“(([[A-Z0-9 _] [A-Za-z0-9 _] +))”
,import re
def contains_acronym(text):
pattern = r'\([A-Za-z0-9]{2,}\)'
result = re.search(pattern,text)
return result != None
print(contains_acronym("Instant messaging (IM) is a set of communication technologies used for text-based communication")) # True
print(contains_acronym("American Standard Code for Information Interchange (ASCII) is a character encoding standard for electronic communication")) # True
print(contains_acronym("Please do NOT enter without permission!")) # False
print(contains_acronym("PostScript is a fourth-generation programming language (4GL)")) # True
print(contains_acronym("Have fun using a self-contained underwater breathing apparatus (Scuba)!")) # True
,
import re
def contains_acronym(text):
pattern = r"\([A-Z0-9][A-Z0-9a-z]+\)"
result = re.search(pattern,text)
return result != None
,
将此用作模式
`pattern = r"\(\w.*\w\)" `
“w”表示字母和数字