2017-05-24 1 views
-7

übergibt Ich habe eine Liste und 3 Zeichenketten. Ich möchte Listenvariablen in einer Zeichenfolge suchen.Regelmäßiger Ausdruck, der Variable

str1 = 'lol cry' 
str2 = 'lol' 
str3 = 'cry' 

l1 = ['lol', 'cry'] 

for wo in l1 : 
    if re.match(r"^"+wo+"$|\s+wo+$", str1, re.M|re.I): 
     print "yes" 

Meine Regex ist hier falsch. Ich möchte "wo" als Variable in | Bedingung hinzufügen. Aber mein Code nimmt es als eine Zeichenfolge. Wenn ich str1, str2, str3 an meine Regex übergebe, muss es ja zurückgeben.

+3

bin geting ich nicht, was Sie tun möchten. Können Sie bitte Ihre Frage zusammen mit einigen Beispiel-Eingabe und Ausgabe neu schreiben? –

+0

Natürlich ist es; Sie haben 'wo' in die Anführungszeichen eingeschlossen, anders als beim ersten Auftreten, wo es eine separate Variable ist. 'r"^"+ wo +" $ | \ s + "+ wo +" $ "' – chepner

+0

@chepner Das passt aber immer noch nicht zu 'str1'. –

Antwort

-1

Ich fand eine der guten Möglichkeiten, es zu tun.

for wo in l1: 
 
\t for eo in l1: 
 
\t \t if re.match(r'^{0}+($|\s+{1}+$)'.format(wo, eo), str1,re.M|re.I): 
 
\t \t \t print "True"

Verwandte Themen