У меня есть строка ABC No.BC2345GFSD234CD
. Я пытался написать regex в python, чтобы извлечь BC2345GFSD234CD
. У меня было еще несколько выражений, от которых все зависит. Я пробовал что-то вроде ^[^\.]*\.(?P<number>[A-Z0-9]*).*$
. Есть ли элегантный способ сделать это?написать регулярное выражение для комбинации колпачков и цифр
EDIT: У меня есть файл со многими regex
. Существует еще одна программа, которая подбирает это регулярное выражение и использует re.match
для некоторых строк. Это общая программа, и мне нужно поместиться в моем регулярном выражении. Также мне нужно использовать re.match()
, а не re.search()
.
еще несколько строк может быть: -
'< lot_of_spaces> ABC No.BC2345GFSD234CD < lot_of_spaces>'
< 'lot_of_spaces> нет-ABC.BC2345GFSD234CD < lot_of_spaces>'
В каждом я должен извлечь-BC2345GFSD234CD
Ну, есть много сложностей там, что, кажется, не требуются по вашему описанию или вашему примеру , но, по-видимому, вы написали его по какой-то причине, которую вы не поделили с нами, поэтому трудно понять, что еще вы могли бы написать вместо этого, чтобы соответствовать требованиям, которые мы не знаем. – abarnert
В частности: почему вы хотите сопоставить начало строки, за которой следует 0 или более символов, за которыми следуют 0 или более неточечных символов, за которыми следует точка, а не, скажем, символ точки? И почему вы хотите совместить 0 или более символов, за которыми следует конец строки, а не только что-нибудь? – abarnert
Регулярное выражение, которое вам нужно, зависит от ваших данных и того, как эти экземпляры отличаются. Вы только дали довольно короткую часть текста. и, увидев ваш '. * $', возникает вопрос, есть ли еще. –