在php中用正则表达式解析字符串

在php中用正则表达式解析字符串,php,regex,Php,Regex,我有这些字段 $first_name = "first_name_5965_1_5969"; $email = "email_596231_1_596222"; 我如何做一些正则表达式,或者只获取php中的“0000_0_0000”部分?请注意,数字总是不同的,但格式是相同的。您可能正在寻找 \d{4}_\d_\d{4}$ $email = "email_596231_1_596222"; preg_match('/\d*_\d_

我有这些字段

$first_name = "first_name_5965_1_5969";

$email = "email_596231_1_596222";

我如何做一些正则表达式,或者只获取php中的“0000_0_0000”部分?请注意,数字总是不同的,但格式是相同的。

您可能正在寻找

\d{4}_\d_\d{4}$
$email = "email_596231_1_596222";
preg_match('/\d*_\d_\d*$/', $email, $matches);
echo $matches[0];

Output:
596231_1_596222
看。这是四个数字,一个
\uu
,另一个数字,一个
\u
,另外四个数字和行/字符串的结尾。

您可以将其与正则表达式一起使用

$email = "email_596231_1_596222";
preg_match('/\d*_\d_\d*$/', $email, $matches);
echo $matches[0];

Output:
596231_1_596222
如果您想要
0000\u 0\u 0000
格式,即开始时4位,结束时4位

preg_match('/\d{4}_\d_\d{4}/', $email, $matches);
echo $matches[0];

Output:
6231_1_5962

如果数字的长度是固定的,你甚至不需要正则表达式。