Autor Zpráva
TTddss
Profil *
Zdravím,

mám problém s následujícím regulárním výrazem:
preg_match_all
"@[0-9]+\s+?(.+)\s+?[0-9]+ ?(?:\r|\r\n|\n)@iU"


ten by měl pasovat třeba na toto:
11 sdsdds 12
144 sdd5sd5 65


ale nemůžu přijít na to proč pasuje i na tohle:
666
66666
5555

vrátí to:
Array
(
    [0] => Array
        (
            [0] => 554546
564456654
546654456
        )

    [1] => Array
        (
            [0] => 564456654
        )

)


Jasně tam mám definováno že aby ten text byl match, musí být na stejném řádku, tak jaktože to vrací, to co to vrací, u toho druhého textu?

díky

Moderátor Joker: Titulek „regulární výraz“ byl hodně obecný, zpřesnil jsem ho.
Joker
Profil
TTddss:
Jasně tam mám definováno že aby ten text byl match, musí být na stejném řádku
Kde?

Podle mě to zafunguje takhle- změna formátování znamená další část regulárního výrazu, snad se v tom půjde vyznat:
Výraz: @[0-9]+\s+?(.+)\s+?[0-9]+ ?(?:\r|\r\n|\n)@iU
Vstup (↵ = odřádkování):
666
66666
5555
Keeehi
Profil
11 sdsdds 12
144 sdd5sd5 65

"~\d+ + (.+) + \d+~iU"

Vyhovuje vše, co začíná alespoň jednou číslicí, po které/kterých následuje alespoň jedna mezera a končí alespoň jedou mezerou po které/kterých následuje alespoň jedna číslice.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0