[inne][PHP]Prośba o pomoc w wyrażeniu regularnym |
[inne][PHP]Prośba o pomoc w wyrażeniu regularnym |
4.12.2014, 15:56:13
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) |
Mam do wyciągnięcia z bazy posklejane dane klienta, dane są w formacie
ID09876Jan_Kowalski ID56789_Stanislaw_Nowak Maciej_Nowicki itd. generalnie chodzi o to, że nie wszytskie wiersze mają ID w takim formacie jak bym chciał, chce wyłapać te które mają już ładnie dodane ID. Format jakiego szukam to Litera I po niej D i 5 cyfr następnie dowolny tekst Próbowałem:
ale nic mi nie znajduje. Sprawdzałem na http://www.regexr.com/ i regex101.com i pokazuje mi, że powinno być ok. Zakładam, że problem leży w jakiejś spacji czy czymś innym drobnym, ale nie mam już pomysłów. Ten post edytował mysz0n 4.12.2014, 15:58:03 |
|
|
4.12.2014, 16:25:20
Post
#2
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
Ten post edytował aniolekx 4.12.2014, 16:26:13 |
|
|
4.12.2014, 17:03:03
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) |
wielkie dzięki! działa, ale nie mam pojęcia jak składa się te wyrażenia. Kilka razy siadałem do tego, aby się nauczyć i jakoś ciagle nie mogę ogarnąć
|
|
|
4.12.2014, 17:06:05
Post
#4
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
Czy mam je rozpisać?
|
|
|
4.12.2014, 22:51:22
Post
#5
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 1 Dołączył: 16.08.2006 Skąd: szy-ły Ostrzeżenie: (0%) |
Poczytałem sobie i wychodzi tak:
/^ID(\d){5}[\D]*$/ /^ - start lini i jakikolwiek znak? ID - litery ID (\d) cyfry {5} - 5 razy to co napisałeś poprzednio - czyli 5 cyfr [\D] - jakakolwiek litera? *$/ - koniec wyrażenia? i pytanie, w adresach mam litery ale też numery domów i znaki w stylu "_", "-" co musiałbym dać zamiast [\D] zeby złapało mi te wyniki i uznało za poprawne? Próbowałem podmienić na [A-Za-z0-9_] ale też nie łapie, chodzi o to, że po tych 5 cyfrach może być cokolwiek, generalnie jak zobaczy ID i 5 cyfr ma uznać true po dalszych testach wyszło mi takie coś: if (preg_match("/^ID(\d){5}(.)*$/", $symbol)) niby sprawdza to co ma i zwraca true kiedy chce, ale czy to dobre rozwiązanie? nie bardzo lubie pisac kod którego nie do końca rozumiem, więc byłbym wdzięczny za potwierdzenie że w dobrą strone poszedłem. Ten post edytował mysz0n 4.12.2014, 22:59:55 |
|
|
4.12.2014, 23:47:08
Post
#6
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
\w - zlapie tylko cyfry, litery i podkreslenie, nie zlapie np ukosnika, kropki, spacji itp . - kropka lapie wszystko oprocz znaku nowej linii \D - przeciwienstwo \d - czyli lapie wszystko co nie jest cyfra opuscilem nawiasy bo w zasadzie w tym przypadku sa zbedne, |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 22:08 |