Я пытался сопоставить всю строку, содержащую одно слово на любом языке. Мой поиск привел меня к \ p {...}, который отсутствовал в модуле Re python. Но я нашел https://pypi.python.org/pypi/regex. Он должен работать с командами \ p {...}. Хотя это не так.Как реализовать p {L} в python regex
Я попытался разбором этих строк:
7652167371 apéritif
78687 attaché
78687 époque
78678 kunngjøre
78678 ærbødig
7687 vår
12312 dfsdf
23123 322432
1321 23123
2312 привер
32211 оипвыола
С:
def Pattern_compile(pattern_array):
regexes = [regex.compile(p) for p in pattern_array]
return regexes
def main():
for line in sys.stdin:
for regexp in Pattern_compile(p_a):
if regexp.search (line):
print line.strip('\n')
if __name__ == '__main__':
p_a = ['^\d+\t(\p{L}|\p{M})+$', ]
main()
Результатом только латиницей слово:
12312 dfsdf
С быстрым взглядом вы не передаете свой параметр регулярного выражения в основную функцию. Попробуйте def main (p_a): и в последней строке main (p_a) – lucasg
Но если p_a пуст, все должно совпадать - так как все соответствует пустому регулярному выражению. – FrankieTheKneeMan
Обычно я использую re2 у Google, он более мощный, хотя я не знаю, покрывает ли он то, что вам нужно. [Re2] (https://pypi.python.org/pypi/re2/) – PepperoniPizza