Obecnie mam to:Mecz września x regex lub y regex
^(.+)\(\w+\)|^(.+)\s\(\d{3}\:\d{3}\s\-\s\d{3}\:\d{3}\)
# 1 to tylko mecze Foo
# 2 Foo ma która jest poprawna
nr 3 pasuje foo ale w 3. elementu tablicy [2]:
3rd array output:
(
[0] => Foo (100:200 - 300:400)
[1] =>
[2] => Foo
)
pogrubiona jest co usiłuję dopasować:
Foo (match11) to (100: 200 - 300: 400) zakończenia # 1
Foo ma (not_matched) (100: 200 - 300: 400) zakończenia # 2
Foo (100: 200 - 300: 400) koniec # 3
uwaga: im nie próbuje dopasować # 1, # 2, # 3 na końcu każdej linii, to tylko w celach informacyjnych.
Jeśli "(100: 200 - 300: 400)" zostanie znaleziony, to uzyskaj dowolny tekst przed nim, elseif "(not_matched) (100: 200 - 300: 400)" znaleziony, a następnie uzyskaj dowolny tekst z przodu z tego, w przeciwnym razie uzyskasz tekst przed "(100: 200 - 300: 400)"
Część elseif "(not_matched) (100: 200 - 300: 400)" można zidentyfikować, ponieważ ma tylko 1 biały przestrzeń pomiędzy 2 okrągłych nawiasach not_matched i (100: 200 - 300: 400)
Edycja:
To jest to, co wymyśliłem, które wydaje się działać, chociaż wymaga niektórych obejść w php, aby były przydatne.
(.+)\s\(\w+\)\s\(|(.+)\s\(\d{3}\:\d{3}\s\-\s\d{3}\:\d{3}\)
przykład robocza: http://www.rubular.com/r/NSpGcnyg0p
Z jakiegoś powodu nie wydaje się, aby zapisać moim przykładem, więc będziesz musiał skopiować/wkleić go w
Ale regex nie posiada. Bezpośrednie dopasowanie na każdym z nich, to dlatego muszę usunąć pusty element tablicy w php, aby uzyskać wynik w elemencie [1].
Czy ktoś może zobaczyć, co robię źle w moim regex?
Proszę uczynić pytanie bardziej jasne ... – shybovycha
Tak przykro, że się trochę mylić, co starałem do zrobienia, pomyśl, że to wyjaśniłem. – Mint