Autor | Zpráva | ||
---|---|---|---|
imploder Profil |
#1 · Zasláno: 9. 4. 2010, 13:15:11 · Upravil/a: imploder
Potřebuju pomocí RV (PCRE) matchovat řetězec až do prvního výskytu dvojice znaků [zpětné lomítko] [konec řádku].
Po první zpětné lomítko: ^.*?\\ Po první konec řádku: ^.*?\n Tohle funguje, ale potřeboval bych prostě to zkombinovat, aby to nebylo po jeden znak, ale po oba ty znaky za sebou. Tohle nefunguje: ^.*?\\\n Nevíte, jak to udělat? pozn.: je zapnutý modifikátor /s, tzn. berou se všechny řádky řetězce dohromady a tečka zahrnuje i konec řádku |
||
Majkl578 Profil |
#2 · Zasláno: 9. 4. 2010, 16:41:23
$data = 'foo bar\ baz'; preg_match('~^(.*)\\\\\n~Us', $data, $match); var_dump($match); \\ je \\\\ .
|
||
imploder Profil |
#3 · Zasláno: 10. 4. 2010, 20:24:48
Majkl578:
Zvláštní je, že v Perlu mi to takhle funguje: my $text = 'foo bar\ baz'; $text =~ /^(.*?)\\\n/s; print $1; a to se čtyřma lomítkama naopak ne. V PHP jsem to zkoušel (a taky na regexp.cz), ale asi se to teda nechová úplně stejně jako v Perlu. Nakonec jsem se to vyřešil bez RV. |
||
Majkl578 Profil |
#4 · Zasláno: 10. 4. 2010, 23:44:54
imploder:
Perl neznám, takže nemohu soudit. Nicméně tipl bych, že to souvisí s ohraničením řetězce uvozovkami. |
||
Časová prodleva: 14 let
|
0