2016-12-01 6 views
0

Ich habe eine Liste von Wörtern in eine Liste von unciode Strings umgewandelt, aber ich bin nicht in der Lage, die Ende Saiten eines bestimmten Wortes aus einer Liste von Zeichenketten wie zum Beispiel zum Spiel:Python Unicode-String-Matching

Liste, die enthält von Strings, von denen removed.For Beispiel sein muss es उपलब्धियां ist, wenn das Wort in Unicode konvertiert u'\u0909\u092a\u0932\u092c\u094d\u0927\u093f\u092f\u093e\u0902'

Liste, die von Strings enthält, die entfernt werden am Ende eines Wortes in Unicode gefunden muss, wenn r3_bad= [u"0900", u"0901", u"0902",u"0903"]; In diesem Fall ist u0902 ist bei das Ende aus der schlechten String-Liste soll also entfernt werden.

habe ich versucht

if re.search(r'u$[0-3]',word[-1]) : 

es nicht gibt true zurück ich weiß nicht, warum.

bitte hilfe danke im voraus.

+0

Drucken Sie einfach 'r'u $ [0-3] '' und 'Wort [-1]' und Sie sollten verstehen, warum Python kann nicht die * ehemaligen finden * in Letzterem*. –

Antwort

0

Warum RegEx? Ich denke, dass Sie so etwas wie Normal String-Vergleich müssen:

s = u'\u0909\u092a\u0932\u092c\u094d\u0927\u093f\u092f\u093e\u0902' 
r3_bad= [u'\u0900',u'\u0901',u'\u0902',u'\u0903'] 

print s # output: उपलब्धियां 
if s[-1] in r3_bad: print s[:-1] # output: उपलब्धिया 
+0

in meinem Fall bekomme ich einen Fehler als – imshashi17

+0

in meinem Fall bekomme ich einen Fehler als so: "Unicode gleichen Vergleich konnte nicht beide Argumente in Unicode konvertieren" der Typ von r3_bad ist Liste und Typ der s wie in Ihre Antwort lautet Unicode. bitte helfen – imshashi17

+0

Operator 'in' durchsucht jedes iterierbare Objekt, so dass Sie eine andere Unicode-Zeichenfolge anstelle von Liste verwenden können, ist es das Gleiche: r3_bad = u '\ u0900 \ u0901 \ u0902 \ u0903' – Organis