Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 匹配模式,排除所有其他内容_Php_Regex - Fatal编程技术网

Php 匹配模式,排除所有其他内容

Php 匹配模式,排除所有其他内容,php,regex,Php,Regex,我有一些数据如下所示 \\0101 \\0102 \\0103 \\0104 \\0201 \\0202 \\0203 \\0204 \\0205 \\0206 \\0301 \\0302 \\0303 \\0304 \\0305 \\0306 我需要始终获取行中最后一个\\之前的数字 在上面的几行中,我的输出应该是 0103 0205 0305 我正在匹配这些数字,但它也匹配最后一组 (?<=\\\\)\d+(?: \\\\\d+$) (?您很接近,而不是使用非捕获组(?:使用积极

我有一些数据如下所示

\\0101 \\0102 \\0103 \\0104
\\0201 \\0202 \\0203 \\0204 \\0205 \\0206
\\0301 \\0302 \\0303 \\0304 \\0305 \\0306
我需要始终获取行中最后一个
\\
之前的数字

在上面的几行中,我的输出应该是

0103
0205
0305
我正在匹配这些数字,但它也匹配最后一组

(?<=\\\\)\d+(?: \\\\\d+$)

(?您很接近,而不是使用非捕获组
(?:
使用积极的前瞻

(?<=\\\\)\d+(?= +\\\\\d+$)

(?您很接近,而不是使用非捕获组
(?:
使用积极的前瞻

(?<=\\\\)\d+(?= +\\\\\d+$)

(?有很多方法可以做到这一点,但要更正您的正则表达式,只需在目标数字上添加一个捕获组

(?<=\\\\)(\d+)(?: \\\\\d+$)

有很多方法可以做到这一点,但要更正正则表达式,只需在目标数字上添加一个捕获组即可

(?<=\\\\)(\d+)(?: \\\\\d+$)

如果您的数据总是以相同的形式出现,则查找无效。您可以尝试以下方法:

$subject = <<<'LOD'
\\0101 \\0102 \\0103 \\0104
\\0201 \\0202 \\0203 \\0204 \\0205 \\0206
\\0301 \\0302 \\0303 \\0304 \\0305 \\0306
LOD;

preg_match_all('~\d+(?=\D+\d+$)~m', $subject, $matches);

print_r($matches);

$subject=如果您的数据总是以相同的形式出现,则“查找”无效。您可以尝试以下方法:

$subject = <<<'LOD'
\\0101 \\0102 \\0103 \\0104
\\0201 \\0202 \\0203 \\0204 \\0205 \\0206
\\0301 \\0302 \\0303 \\0304 \\0305 \\0306
LOD;

preg_match_all('~\d+(?=\D+\d+$)~m', $subject, $matches);

print_r($matches);

$subject=谢谢!我错过了一些简单的东西!我错过了一些简单的东西!谢谢!我错过了一些简单的东西。谢谢!我错过了一些简单的东西。谢谢!我错过了一些简单的东西。谢谢!我错过了一些简单的东西。