Hello,
I am very new to PHP (started this week) and I have a problem (I’m coming from C/C++/C# so PHP is a bit strange for me).
What I want to do is Regex.Match thingy, and on php.net I found proper function (preg_match())
So what I want to do is from variable $response which contains something like: GALX=CVfeZW_855M; extract the GALX value from = to ;
So what I tried is:
preg_match(‘GALX=([^;])’, $response, $matches, “”, 0);
But I get null match, so I’m wondering what I am doing wrong.
Thanks
<?php
if(1 === preg_match('~(?<=GALX=)([^;]+)~', 'GALX=CVfeZW_855M;', $matches)){
echo $matches[1]; #CVfeZW_855M
}
?>
Aha, so if preg_match returns int 1 and 1 only… can I do if(preg_match() > 0) as well? Although I totally forgot about $matches beeing an array.
But I don’t understand this pattern expression (~(?<=GALX=).+~)…
Ok, it worked, but I get too much of an output.
I get resSroX68nKMvQ;Path=/accounts;Secure when I should only get till “;” so resSroX68nKMvQ
[fphp]preg_match[/fphp] can return 1 (match), 0 (no match) or false (error).
It’s a Positive lookbehind. It matches a group before your main expression without including it in the result.
jan1024188:
Ok, it worked, but I get too much of an output.
I get resSroX68nKMvQ;Path=/accounts;Secure when I should only get till “;” so resSroX68nKMvQ
Does my amended pattern work?
Partially it works. It outputs too much content. I just need GALX value till semicolon “;”
Do you have a sample string?
Can you confirm you’re using…
<?php
if(1 === preg_match('~(?<=GALX=)([^;]+)~', 'GALX=CVfeZW_855M;', $matches)){
echo $matches[1]; #CVfeZW_855M
}
?>
You removed part of the regex Anthony posted, or he edited the post. The [^;] part.
This is part of variable:
charset=UTF-8 Set-Cookie: GALX=fc9nuw1krZY;Path=/accounts;Secure Cache-control:
With ‘~(?<=GALX=).+~’ as pattern I get:
resSroX68nKMvQ;Path=/accounts;Secure
While ‘~(?<=GALX=)([^;]+)~’ WORKS.
Thanks a TON
I don’t quite understand the pattern, its very different from patterns I used in C#. Is there any good resource you suggest where I could learn patterns?
I’m asking, as I need to make another match:
<input type=“hidden” name=“dsh” id=“dsh” value=“5651071537274271064” />
This time I need value of element with id=“dsh”. How would the pattern go so I get output of 5651071537274271064
regular-expressions.info is a good source.