python regex postal-code

Búsqueda de código postal de Python, expresión regular



regex postal-code (3)

Tratar

import re re.findall("[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2}", x)

No necesitas el / b.

Intento usar expresiones regulares para encontrar un código postal del Reino Unido dentro de una cadena.

Tengo la expresión regular trabajando dentro de RegexBuddy, ver abajo:

/b[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2}/b

Tengo un montón de direcciones y quiero tomar el código postal de ellas, ejemplo a continuación:

123 Algunos nombres de carreteras
Ciudad, Ciudad
Condado
PA23 6NH

¿Cómo voy a hacer esto en Python? Conozco el módulo de re para Python, pero estoy luchando para que funcione.

Aclamaciones

Eef


repitiendo su dirección 3 veces con el código postal PA23 6NH, PA2 6NH y PA2Q 6NH como prueba para su patrón y usando la expresión regular de wikipedia contra la suya, el código es ...

import re s="123 Some Road Name/nTown, City/nCounty/nPA23 6NH/n123 Some Road Name/nTown, City"/ "County/nPA2 6NH/n123 Some Road Name/nTown, City/nCounty/nPA2Q 6NH" #custom print re.findall(r''/b[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2}/b'', s) #regex from #http://en.wikipedia.orgwikiUK_postcodes#Validation print re.findall(r''[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][A-Z]{2}'', s)

el resultado es

[''PA23 6NH'', ''PA2 6NH'', ''PA2Q 6NH''] [''PA23 6NH'', ''PA2 6NH'', ''PA2Q 6NH'']

tanto las expresiones regulares dan el mismo resultado.


#!/usr/bin/env python import re ADDRESS="""123 Some Road Name Town, City County PA23 6NH""" reobj = re.compile(r''(/b[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2}/b)'') matchobj = reobj.search(ADDRESS) if matchobj: print matchobj.group(1)

Ejemplo de salida:

[user@host]$ python uk_postcode.py PA23 6NH