Reguliere expressies vind ik nog steeds een van de moeilijkste dingen om goed te begrijpen..
Daarom wil ik even jullie hulp inschakelen.
Ik heb een stuk tekst en daarin staan Youtube-tags; die wil ik eruit halen zodat ik die kan gebruiken.
Voorbeeld van de tekst:
Nu is het zoeken van de youtube-tag niet zo moeilijk:
Hiermee haal ik mooi het Youtube-id uit de tag (en met preg_replace kan ik de hele tag gemakkelijk verwijderen):
Echter; helaas staat op de volgende regel ná de youtube-tag nog de titel/omschrijving van de video. En die wil ik dus ook graag parsen.
En daar kom ik dus niet uit; ik heb uiteraard gegoogled en kom wel wat dingen tegen zoals
maar daar komt dit uit :
Dus "what is in the box" wordt dan wel goed gevonden maar de rest niet.
Uiteindelijk wil ik dus zoiets:
Dus de youtube-id's in matches[1] en de titel in matches[2]
Samenvatting:
Ik zoek een regex-mogelijkheid om de inhoud van youtube-tag te verkrijgen maar ook de eerste regel die daaronder staat.
Thx
Daarom wil ik even jullie hulp inschakelen.
Ik heb een stuk tekst en daarin staan Youtube-tags; die wil ik eruit halen zodat ik die kan gebruiken.
Voorbeeld van de tekst:
code:
1
2
3
4
5
6
7
| blabla wat tekst hier. [youtube]sIzxmG8-r88[/youtube] Getting started [youtube]TIg877BATK0[/youtube] what is in the box? blabla nog wat tekst hier. |
Nu is het zoeken van de youtube-tag niet zo moeilijk:
PHP:
1
| preg_match_all('/\[youtube\](.+?)\[\/youtube\]/s',$text,$matches); |
Hiermee haal ik mooi het Youtube-id uit de tag (en met preg_replace kan ik de hele tag gemakkelijk verwijderen):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Array ( [0] => Array ( [0] => [youtube]sIzxmG8-r88[/youtube] [1] => [youtube]TIg877BATK0[/youtube] ) [1] => Array ( [0] => sIzxmG8-r88 [1] => TIg877BATK0 ) ) |
Echter; helaas staat op de volgende regel ná de youtube-tag nog de titel/omschrijving van de video. En die wil ik dus ook graag parsen.
En daar kom ik dus niet uit; ik heb uiteraard gegoogled en kom wel wat dingen tegen zoals
PHP:
1
| preg_match_all('/\[youtube\](.+?)\[\/youtube\](.*?)\n/sU',$text,$matches); |
maar daar komt dit uit :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| Array ( [0] => Array ( [0] => [youtube]sIzxmG8-r88[/youtube] Getting started [youtube]TIg877BATK0[/youtube] what is in the box? ) [1] => Array ( [0] => sIzxmG8-r88[/youtube] Getting started [youtube]TIg877BATK0 ) [2] => Array ( [0] => what is in the box? ) ) |
Dus "what is in the box" wordt dan wel goed gevonden maar de rest niet.
Uiteindelijk wil ik dus zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Array ( [0] => Array ( [0] => [youtube]sIzxmG8-r88[/youtube] Getting started [1] => [youtube]TIg877BATK0[/youtube] what is in the box? ) [1] => Array ( [0] => sIzxmG8-r88 [1] => TIg877BATK0 ) [2] => Array ( [0] => Getting started [1] => what is in the box ) ) |
Dus de youtube-id's in matches[1] en de titel in matches[2]
Samenvatting:
Ik zoek een regex-mogelijkheid om de inhoud van youtube-tag te verkrijgen maar ook de eerste regel die daaronder staat.
Thx