reguliere expressie om tekst tussen "" te dedecteren
hoi,
sinds kort ben ik begonnen met reguliere expressies. Nu wil ik bv uit de volgende variabele:
het volgende als resultaat krijgen:
iemand een ideetje? dit moet toch mogelijk zijn met preg_match of niet?
sinds kort ben ik begonnen met reguliere expressies. Nu wil ik bv uit de volgende variabele:
het volgende als resultaat krijgen:
iemand een ideetje? dit moet toch mogelijk zijn met preg_match of niet?
zeker: "([^"]+)"
Dus iets als:
http://www.gskinner.com/RegExr/
Dus iets als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$str = 'test "dinges en nog wat 1234" blah "foo bar"';
$regEx = '#"([^"]+)"#';
if(preg_match_all($regEx, $str, $matches)){
print_r($matches[1]);
}else echo 'Niets gevonden in $str';
?>
UITVOER:
Array
(
[0] => dinges en nog wat 1234
[1] => foo bar
)
$str = 'test "dinges en nog wat 1234" blah "foo bar"';
$regEx = '#"([^"]+)"#';
if(preg_match_all($regEx, $str, $matches)){
print_r($matches[1]);
}else echo 'Niets gevonden in $str';
?>
UITVOER:
Array
(
[0] => dinges en nog wat 1234
[1] => foo bar
)
http://www.gskinner.com/RegExr/
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
Maar het hoeft niet met een regex :-)
Je weet toch zelf ook wel dat Explode de minst bruikbare manier is voor dit soort dingen?
EDIT: Zie de edit van mijn vorige bericht met werkende php code..
EDIT: Zie de edit van mijn vorige bericht met werkende php code..
Gewijzigd op 01/01/1970 01:00:00 door Hipska BE
En je weet toch hopelijk dat dat onzin is?
Zie mijn functie die precies hetzelfde doet...
Zie mijn functie die precies hetzelfde doet...
ha merci hipska ;) just wat ik nodig had!
Zou je ev enige verklaring kunnen geven voor je regex? zodat ik er ook aan uit kan :p
Zou je ev enige verklaring kunnen geven voor je regex? zodat ik er ook aan uit kan :p
Zeker: "(^")+"
" : matcht een " in het begin
(^")+ : matcht één of meerdere tekens (neem een * ipv + voor 0 of meerdere tekens)
^" : tekens mogen niet een " zijn
dus alles samen, match een stuk tekst dat tussen 2 " staat en erin mogen geen " staan.
" : matcht een " in het begin
(^")+ : matcht één of meerdere tekens (neem een * ipv + voor 0 of meerdere tekens)
^" : tekens mogen niet een " zijn
dus alles samen, match een stuk tekst dat tussen 2 " staat en erin mogen geen " staan.
bedankt!
'Hipska:
Je weet toch zelf ook wel dat Explode de minst bruikbare manier is voor dit soort dingen?
EDIT: Zie de edit van mijn vorige bericht met werkende php code..
EDIT: Zie de edit van mijn vorige bericht met werkende php code..
Leg dan effe uit waarom dat is?
Tekst functies zijn eigenlijk per definitie beter dan intensieve regexen.
Als je zoiets simpels wilt doen als dit moet je zeker geen regex gebruiken.




