我想从文本中区分大小写匹配。在下面的例子中,我尝试使用re.search匹配“Ca.iNy”,我想匹配其中“C”应该是大写的,并且所有字符都可以在任何情况下保留。如果它匹配我想要为变量设置一个值的情况。使用python re.search的区分大小写匹配
我已经采取了SO的帮助形式,并通过检查第一个字母是否是大写字母来实现,并且它对于单个检查工作正常。
s = "The details belong to (Ca.iNy.) in this case"
reg = re.compile("Ca.iny.", re.I)
reg.search(s).group().startswith("C").
但是,我不能在“if else循环”中使用它。我尝试了下面的代码,但搜索似乎不区分大小写。任何人都可以请让我?
import re
st = "The details belong to (Ca.iNy.) in this case"
Mval = ''
if re.search(r"C(?i)a.iny", st):
Mval = "AAAAA"
elif re.search(r"(?i)Ky.", st):
Mval = "BBBBB"
elif re.search(r"(?i)M.sa.", st):
Mval = "CCCCC"
else:
Mval = "DDDDD"
print Mval
可能重复的[Python的RE(在字,检查第一个字母是大小写敏感的,其余全部不区分大小写)] (http://stackoverflow.com/questions/15071416/python-re-in-a-word-to-check-first-letter-is-case-sensitive-and-rest -all-case) – geoffspear 2013-02-26 16:39:50
@Wooble。那里的答案只涉及一个案例。但这里的问题是在执行if else循环期间。因为如果需要匹配50个左右的情况下使用,否则。如果我最初编译所有模式,将不会好。 – 2013-02-26 16:42:41
@Wooble你可以取消重复的标记吗?这样你们中的任何一个人都可以帮助我实现这一目标? – 2013-02-26 16:48:04