Я использую regex library 're' в Python (2.7) для проверки номера рейса.Python - проблема REGEX с RE с использованием функции re.compile + search
У меня не было никаких проблем с ожидаемыми результатами, используя очень полезно редактор здесь: http://regexr.com/
Моих результаты на regexr.com являются: http://imgur.com/nB0QDug
Моего кода:
import re
test1 = 'ba116'
###Referencelink: http://academe.co.uk/2014/01/validating-flight-codes/
p = re.compile('/^([a-z][a-z]|[a-z][0-9]|[0-9][a-z])[a-z]?[0-9]{1,4}[a-z]?$/g')
m = p.search(test1) # p.match() to find from start of string only
if m:
print 'It works!: ', m.group() # group(1...n) for capture groups
else:
print 'Did not work'
Я не уверен, почему я получаю вывод «не работает», где regexr показывает одно совпадение (как ожидалось)
Я сделал много simp ler regex lookup, и показалось, что результаты были верны, поэтому кажется, что моя строка регулярного выражения недопустима, или я неправильно использую re.complile (или, возможно, цикл if)?
'ba116' действителен и должен соответствовать.
Является ли ваш код действительно отступом? Это должно вызывать синтаксическую ошибку. – zwol
Удалите '/', который вам не нужен в python. Вероятно, почему он не работает – sisanared
Да. Как в: http://imgur.com/QqK3HsX - я не получаю никаких ошибок; код исполняется и заканчивается «Процесс завершен с кодом завершения 0» –