PHP/Regex: Wyodrębnij ciąg z ciągu
Właśnie zacząłem używać PHP i mam nadzieję, że ktoś tutaj może mi w tym pomóc.
Próbuję wyodrębnić ciąg („
myRegion”) z innego ciągu („
mainString”), gdzie mój ciąg zawsze zaczyna się od „
myCountry:”i kończy się średnikiem (
;), jeśli główny wiersz zawiera więcej krajów po myCountry LUB bez niczego, jeśli główny wiersz nie zawiera więcej krajów po nim.
Przykłady pokazujące różne opcje dla linii głównej
:
- myCountry: region1, region2
- myCountry: Region1, Region2, Region3 ; otherCountry: region1
- otherCountry: region1; myCountry: region1 ; otherCountry: region1, region2
To, co chcę wyodrębnić, jest zawsze pogrubione.
Myślałem o czymś podobnym do następującego, ale to jeszcze nie wygląda
:
$myRegions = strstr($mainString, $myCountry);
$myRegions = str_replace($myCountry . ": ", "", $myRegions);
$myRegions = substr($myRegions, 0, strpos($myRegions, ";"));
Z góry dziękuję za pomoc, Mike.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
.
(
mam nadzieję, że to nie jest nieodpowiednie dla
).
Po pierwsze, pamiętaj, że masz definicje oddzielone , ponieważ jest to:
Więc używając http://www.php.net/manual/en/function.explode.php
Możesz wygenerować tablicę swoich definicji:
dać ci
Możesz teraz iterować po tej tablicy (używając http://www.php.net/manual/en/c ... ch.php) i zdetonuj go za pomocą , a następnie zdetonuj drugi wynik tego za pomocą .
W ten sposób możesz utworzyć asocjacyjną tablicę zawierającą twoje kraje z ich odpowiednimi regionami.
Po prostu bardzo
prosty przykład
http://sandbox.onlinephpfuncti ... 1720e
do gry.