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 |
#2 · Zasláno: 13. 4. 2011, 14:43:15
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 |
#3 · Zasláno: 13. 4. 2011, 15:20:14 · Upravil/a: Keeehi
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. |
||
Časová prodleva: 13 let
|
0