I am new to php and regex, and I am facing a problem.
I have a text looks like this for example: "FIRST NAME: sdfksdfkjskdlfjlskdf MORE DATA: dsfkskldfjsdkfjsdkf EXTRA DATA: dsfksdfjlsdjfklsdf"
and I want to fecth three groups, one for FIRST NAME another for MORE DATA and a third one for EXTRA DATA. so this is my regex:
FIRST NAME:(.*)MORE DATA:(.*)EXTRA DATA:(.*)
this is how I do it in java.
but now, how do I match it with php so I can echo something like:
echo "more data: " . matche(group(1));
for example.
thank you!
EDIT: and what if I have it repeating it self? for example: FIRST NAME: sdfksdfkjskdlfjlskdf MORE DATA: dsfkskldfjsdkfjsdkf EXTRA DATA: dsfksdfjlsdjfklsdf FIRST NAME: sdfksdfkjskdlfjlskdf MORE DATA: dsfkskldfjsdkfjsdkf EXTRA DATA: dsfksdfjlsdjfklsdf
how do I grap the groups in a while loop until it ends matching?
Let's do it like this:
preg_match('/FIRST NAME:\s*(.*?)\s*MORE DATA:\s*(.*?)\s*EXTRA DATA:\s*(.*)\s*/', $line, $matches);
Your match results will now be in $matches
, like this:
php > var_dump($matches);
array(4) {
[0]=>
string(93) "FIRST NAME: sdfksdfkjskdlfjlskdf MORE DATA: dsfkskldfjsdkfjsdkf EXTRA DATA: dsfksdfjlsdjfklsd"
[1]=>
string(20) "sdfksdfkjskdlfjlskdf"
[2]=>
string(19) "dsfkskldfjsdkfjsdkf"
[3]=>
string(17) "dsfksdfjlsdjfklsd"
}
php >
So now $matches[1]
is the first group, and so on. [0]
is the whole match result.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With