Ich versuche Regex zu verwenden, um die Schlüssel in einem Dict zu suchen und die Übereinstimmungen zurückzugeben. Der folgende Code ist vom echten Code vereinfacht, zeigt aber das Problem.Python-Code funktioniert nach einer Druckanweisung anders
#!/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()
Und der Ausgang ist dies:
***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>
Ich verstehe nicht, warum das Muster nicht auf der 3. und 4. Schlüssel gefunden wird.
Ich verstehe nicht, warum das Muster auch nicht im zweiten Test gefunden wird.
Ich verstehe wirklich nicht, warum es im dritten Test gefunden wird, der der gleiche ist wie der zweite, aber mit einer Druckanweisung.
Dies ist mein erster Beitrag, aber ich habe viel gelernt, indem ich hier gesucht und gelesen habe. Vielen Dank an euch alle.
'print re.search (pat, key)' – vks
Manchmal 're.search (key, pat)' und manchmal 're.search (pat, key)' – zvone