Muszę rozwiązać problem z wyrażeniem regularnym, który może być konkretny, przeglądając przepełnienie stosu Dokonałem kilku dobrych odkryć, ale nie udało się ich połączyć, aby działało.Naprawianie nazw ulic za pomocą wyrażeń regularnych
Zasadniczo chcę to:
lorem ipsum north road
=>lorem ipsum rd (n)
north lorem ipsum rd
=>lorem ipsum rd (n)
lorem ipsum road north
=>lorem ipsum rd (n)
W ramach auto kompletny program muszę konwertować częściowe tekst do poprawnej wersji, aby mógł sprawdzić bazę danych
lorem ipsum so
UTH rd =>lorem ipsum rd (s)
west lorem ipsum roa
d =>lorem ipsum rd (w)
Nie chcę aby ktoś kod tego programu do mnie, ale chciałbym wiedzieć, najlepszy sposób rozwiązania problemu.
Teraz możesz zapytać mnie, dlaczego przeszkadza, jak ludzie nie pisać z taką f'd się gramatyki, ale to dlatego, że nie jestem tylko do czynienia z angielskim :(
Cheers
To jest ogromne wyzwanie. Wcześniej utworzyłem RegExp, który znalazł typy ulic (np. "Ulica", "Lane", "Avenue", "Ave", itp.), Ale nawet to było RegExp z ponad 200 znaków. Rozwiązanie tego byłoby bardziej skomplikowane. Krawędzie takie jak "North Rd", "West Ave" itp. Sprawiają, że jest to jeszcze trudniejsze. –
Myślę, że jest to pytanie, które nie powinno być rozwiązywane za pomocą jednego dużego wyrażenia regularnego. Łatwiej byłoby podzielić zadanie na małe etapy i wykonać je osobno: np. sprawdź północ, n ... itd. i dodaj "(n)" na końcu; sprawdź inne kierunki; sprawdź skróty "drogi" ... itd. Jeśli wykonasz każdą z nich w innym kroku, łatwiej będzie ją wykonać i łatwiej ją zapisać. –
Ooh, kolejna myśl: jeśli zrobisz to krok po kroku, będziesz miał opcję cofnięcia modyfikacji i ponownej próby wyszukiwania: możliwe, że niektóre ulice mają coś w rzeczywistej nazwie, którą zastąpiłeś. –