检查文本中是否存在2个或多个用括号括起来的字符或数字,并且至少第一个字符大写

问题描述

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”表示字母和数字