2017-05-29 3 views
0

ich eine Regex müssen übereinstimmen, die api Pfad mit den folgenden RegelnPython Regex API Pfade

  1. Pfad mit ‚/‘ beginnt passt, kann aber mehr als ein ‚/‘
  2. ‚/‘ haben muss gefolgt werden durch ein Wort mit Kleinbuchstaben begining, kann aber Großbuchstaben haben später

    x = ["/word/worD/sdfsfsd","/fsdfsdf","/","/{sfsdf",'/','/_','/{','/{"type":"tnt"}',"/allGear{Exe","/Grear"] 
    
    import re 
    
    pattern = re.compile("(/[a-z][a-zA-Z]+)+") 
    
    for y in x: 
        print (pattern.match(y)) 
    

So in diesem Beispiel nur die ersten beiden Elemente eine Übereinstimmung erzeugen müssen.

Antwort

2

Ich denke, das sollte die Arbeit für Sie erledigen. Aber, wieder wie gesagt in einem Kommentar, ich denke, mit Ihrer Beschreibung /allGear{Exe sollte auch enthalten sein. Der Code, den ich gegeben habe gibt diese auch

x = ["/word/worD/sdfsfsd","/fsdfsdf","/","/{sfsdf",'/','/_','/{','/{"type":"tnt"}',"/allGear{Exe","/Grear"] 


import re 

for i in x: 
    pattern = re.search("""\/[a-z][a-zA-Z]+""", i, re.S) 
#If you don't want the /allGear, change the regex to """\/[a-z][a-zA-Z]+$"""; 
    if(pattern is not None): 
     print i 
1

Verwenden Sie die folgende Vorgehensweise:

import re 
x = ["/word/worD/sdfsfsd","/fsdfsdf","/","/{sfsdf",'/','/_','/{','/{"type":"tnt"}',"/allGear{Exe","/Grear"] 
result = [p for p in x if re.match(r'^(\/[a-z][a-zA-z]+)+$', p)] 

print(result) 

Der Ausgang:

['/word/worD/sdfsfsd', '/fsdfsdf']