javascript - vacio - coincidencia de dirección de calle de regex
regex caracteres especiales (2)
Aunque sé que una dirección de calle nunca será perfecta, estoy buscando crear un par de declaraciones de expresiones regulares que se acerquen la mayor parte del tiempo.
Estoy tratando de resaltar una dirección. Apesta a Regex y he tratado de acercarme, pero ¿podría alguien ayudarme a entender cómo puedo mejorarlo?
cuerda:
6 a.m. - 11 p.m., Escuela Primaria Palma Sola, 6806 Fifth Ave NW, Bradenton, FL 34209 Venga a encontrarla justo al lado de la dsfsd sa fsa fasdf asfsds 5001 oeste, su madre no vive aquí, mi guardabosques de 2005,
Regex 1:
/ / s + (/ d {2,5} / s +) (?! [a | p] m / b) (([a-zA-Z | / s +] {1,5}) {1,2}) ? ([/ s | /, |.] +)? (([a-zA-Z | / s +] {1,30}) {1,4}) (corte | ct | calle | st | unidad | dr | lane | ln | road | rd | blvd) ([/ s | /, |. | /;] +)? (([a-zA-Z | / s +] {1,30}) {1,2} ) ([/ s | /, |.] +)? / b (AK | AL | AR | AZ | CA | CO | CT | DC | DE | FL | GA | GU | HI | IA | ID | IL | IN | KS | KY | LA | MA | MD | ME | MI | MN | MO | MS | MT | NC | ND | NE | NH | NJ | NM | NV | NY | OH | OK | O | PA | RI | SC | SD | TN | TX | UT | VA | VI | VT | WA | WI | WV | WY) ([/ s | /, |.] +)? (/ S + / d {5})? ([/ S | /, |.] +) / i
(A veces solo hay una calle y una ciudad, pero no hay estado o zip)
regex 2:
/ / b (/ d {2,5} / s +) (?! [a | p] m / b) (NW | NE | SW | SE | norte | sur | oeste | este | n | e | s | w )? ([/ s | /, |.] +)? (([a-zA-Z | / s +] {1,30}) {1,4}) (corte | ct | calle | st | unidad | dr | carril | ln | camino | rd | blvd) / i
Juega con él: http://jsfiddle.net/isuelt/rMC6P/11/
Las direcciones de EE. UU. No son un idioma normal y no se pueden combinar mediante el uso de expresiones regulares. Son útiles en algunos casos aislados, pero, en general, le fallarán, especialmente para comentarios como ese.
Solía trabajar en una empresa de verificación de direcciones. En respuesta a su pregunta, para "resaltar una dirección" en una cadena de texto, le recomiendo que pruebe una utilidad de extracción. Hay algunos por ahí y te sugiero que mires alrededor, pero aquí está el nuestro usando la información de tu pregunta, como puedes ver, encontró la dirección y la validó:
El punto final API devuelve JSON que contiene las posiciones inicial y final de cada dirección, así como mucha información sobre cada una. (Vea la salida CSV en la parte inferior de la imagen de arriba).
¡Te felicito por desafiar esas expresiones regulares que has intentado! Espero que esto sea útil.
Necesitaba hacer algo similar para direcciones como
800 SE 20 AVENUE # 603, DEERFIELD BEACH
9801 NW 3 STREET APT 5, PLANTATION
11909 GLENMORE DRIVE # 4-1, CORAL SPRINGS
Esta es la expresión regular que utilicé
/s*([0-9]*)/s((NW|SW|SE|NE|S|N|E|W))?(.*)((NW|SW|SE|NE|S|N|E|W))?((#|APT|BSMT|BLDG|DEPT|FL|FRNT|HNGR|KEY|LBBY|LOT|LOWR|OFC|PH|PIER|REAR|RM|SIDE|SLIP|SPC|STOP|STE|TRLR|UNIT|UPPR|/,)[^,]*)(/,)([/s/w]*)/n
Devuelve grupos separados para cada parte de la dirección (no necesité analizar el nombre de estado de mi caso). Pruébelo aquí https://regex101.com/r/OsvOxn/3