Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regex, get string value between two characters

Tags:

regex

php

I'd like to return string between two characters, @ and dot (.).

I tried to use regex but cannot find it working.

(@(.*?).)

Anybody?

like image 660
Johannes Avatar asked Jan 09 '10 19:01

Johannes


2 Answers

Your regular expression almost works, you just forgot to escape the period. Also, in PHP you need delimiters:

'/@(.*?)\./s'

The s is the DOTALL modifier.

Here's a complete example of how you could use it in PHP:

$s = '[email protected]';
$matches = array();
$t = preg_match('/@(.*?)\./s', $s, $matches);
print_r($matches[1]);

Output:

bar
like image 183
Mark Byers Avatar answered Sep 19 '22 19:09

Mark Byers


Try this regular expression:

@([^.]*)\.

The expression [^.]* will match any number of any character other than the dot. And the plain dot needs to be escaped as it’s a special character.

like image 34
Gumbo Avatar answered Sep 21 '22 19:09

Gumbo