helloworld
helloworld

Reputation: 527

Extract pattern from string with regex

How can I extract the number and key from the following strings using regular expressions?

 Duplicate entry '24040446669881344' for key 'clave_something'
 Duplicate entry '24040446669881345' for key 'clave_something_else'

I tried using substrings but it wont work when the length of the chain changes.

Thanks!

Upvotes: 4

Views: 4369

Answers (2)

Glavić
Glavić

Reputation: 43552

With this, you will get all integers from string:

preg_match_all('~\d+~', $string, $match);
print_r($match);

demo

For you specific example, to extract also the key:

preg_match("~'(.+?)'.+'(.+?)'~", $string, $match);
print_r($match);

demo

or if you wish to fetch multiline string:

preg_match_all("~'(.+?)'.+'(.+?)'~m", $string, $match, PREG_SET_ORDER);
print_r($match);

demo

Upvotes: 3

elixenide
elixenide

Reputation: 44833

Try this:

preg_match("/Duplicate entry '([^']+)' for key '([^']+)'/", $theString, $matches);

The variable $matches will contain your desired data.

Upvotes: 2

Related Questions