regex
module hat genannt Listen die Saiten richtig zu entkommen, bevor sie in einem regex Kombination (Sets tatsächlich) stellen Sie sicher:
#!/usr/bin/env python
import regex as re # $ pip install regex
p = re.compile(r"\L<words>", words=['fun', 'dum', 'sun', 'gum'])
if p.search("I love to have fun."):
print('matched')
Hier words
ist nur ein Name, Sie können stattdessen alles verwenden, was Sie möchten.
.search()
Methoden wird anstelle von .*
vor/nach der genannten Liste verwendet.
Um benannte Listen zu emulieren stdlib der mit re
Modul:
#!/usr/bin/env python
import re
words = ['fun', 'dum', 'sun', 'gum']
longest_first = sorted(words, key=len, reverse=True)
p = re.compile(r'(?:{})'.format('|'.join(map(re.escape, longest_first))))
if p.search("I love to have fun."):
print('matched')
re.escape()
verwendet wird regex Meta-Zeichen wie .*?
innerhalb einzelner Wörter zu entkommen (um die Worte zu passen buchstäblich).
sorted()
emuliert regex
Verhalten und es setzt die längsten Wörter unter den Alternativen ersten, vergleichen:
>>> import re
>>> re.findall("(funny|fun)", "it is funny")
['funny']
>>> re.findall("(fun|funny)", "it is funny")
['fun']
>>> import regex
>>> regex.findall(r"\L<words>", "it is funny", words=['fun', 'funny'])
['funny']
>>> regex.findall(r"\L<words>", "it is funny", words=['funny', 'fun'])
['funny']
die Elemente Array Join mit '|' als Kleber, bilden String als 'Spaß | dum | Sonne | gum' die kann in Regex verwendet werden. – Tushar
're.search ('|' .join (string_lst), input_string)' –
'any (z in string_list für z in re.findall (r" ['\ w] + ",' Dies ist nur zum Spaß ')) ' –