【发布时间】:2016-09-16 16:20:17
【问题描述】:
我正在尝试使用正则表达式来搜索字典中的键并返回匹配项。下面的代码是从真实代码简化而来的,但显示了问题。
#!/bin/python
# Import standard Python modules
import os, sys, string, pdb, re
key=""
pat=""
steps = {"pcb":"xxx","aoi":"xxx","pcb-pec":"xxx","pcb_1":"xxx"}
pat = "pcb"
print"***Search the dict***"
for key in steps:
print re.search(key,pat)
print"***Search the key***"
key = "pcb-pec"
pat = "pcb"
print re.search(key,pat)
print"***Search the key after printing it***"
key = "pcb-pec"
pat = "pcb"
print 'key:' + key+ ' ,pattern:' + pat
print re.search(pat,key)
exit()
输出是这样的:
***Search the dict***
<_sre.SRE_Match object at 0x00000000031FBC60>
None
None
None
***Search the key***
None
***Search the key after printing it***
key:pcb-pec ,pattern:pcb
<_sre.SRE_Match object at 0x00000000031FBC60>
我不明白为什么在第 3 键和第 4 键上找不到该模式。
我也不明白为什么在第二次测试中也找不到该模式。
我真的不明白为什么在第三个测试中发现它与第二个相同,但带有打印语句。
这是我的第一篇文章,但通过在这里搜索和阅读,我学到了很多东西。非常感谢大家。
【问题讨论】:
-
print re.search(pat, key) -
有时是
re.search(key,pat),有时是re.search(pat,key)
标签: python regex python-2.7