正则表达式在PHP中以字符和字符开头

时间:2014-12-17 07:52:16

标签: php regex

我正在努力让正则表达式在“测试”之后以及在电子邮件中的“@”之前完成所有操作,以便“test-12345@example.com将成为12345。

我已经做到这一点,让它在“@”符号之前返回所有内容。 (在PHP中工作)

!(\d+)@!

4 个答案:

答案 0 :(得分:3)

您可以使用捕获组并使用正则表达式

test-(\d+)@

并使用$1或使用与(?<=test-)\d+(?=@)匹配的前瞻和后方12345

答案 1 :(得分:2)

(?<=test-)[^@]+

你可以试试这个。不需要使用群组。参见演示。

https://regex101.com/r/eZ0yP4/28

答案 2 :(得分:0)

您需要test@之间的所有内容,因此请勿使用\d

$myRegexPattern = '#test([^@])*@#Ui';
preg_match ($myRegexPattern, $input, $matches);
$whatYouNeed = $matches[1];

答案 3 :(得分:0)

试试这个

$input = 'test-12345@example.com';
$regexPattern =  '/^test(.*?)\@/';
preg_match ($regexPattern, $input, $matches);
$whatYouNeed = $matches[1];
var_dump($whatYouNeed);