【发布时间】:2013-02-26 16:35:07
【问题描述】:
我想对文本进行区分大小写的匹配。在以下情况下,我尝试使用 re.search 匹配“Ca.iNy”,我想匹配“C”应该大写的位置,其余所有字符都可能在任何情况下。如果它匹配我想为变量设置一个值的情况。
我采用了 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
【问题讨论】:
-
@Wooble。那里的答案只处理一个案例。但是这里的问题是在使用 if else 循环实现的过程中。因为如果需要使用 if else 匹配大约 50 个案例。如果我一开始就编译所有模式就不行了。
-
@Wooble 你能从重复中取消标记吗?这样你们中的任何人都可以帮助我实现这一点吗?