Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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_Expression - Fatal编程技术网

PHP正则表达式

PHP正则表达式,php,regex,expression,Php,Regex,Expression,我有一个巨大的字符串,我需要分离信息。它的某些部分是不同的,而有些则不一样。我面临的困难是,我找不到一个符号或东西,我可以得到我想要的比赛。下面是字符串: $str = "01;01;283;Póvoa do Vâle do Trigo;15315100 01;01;249;Alcafaz;;;;;;;;;;;3750;011;AGADÃO 01;01;2504;Caselho;;;;;;;;;;;3750;012;AGADÃO _ "15" '' ghdhghg AND IT CONTINUE

我有一个巨大的字符串,我需要分离信息。它的某些部分是不同的,而有些则不一样。我面临的困难是,我找不到一个符号或东西,我可以得到我想要的比赛。下面是字符串:

$str = "01;01;283;Póvoa do Vâle do Trigo;15315100 01;01;249;Alcafaz;;;;;;;;;;;3750;011;AGADÃO 01;01;2504;Caselho;;;;;;;;;;;3750;012;AGADÃO _ "15" '' ghdhghg AND IT CONTINUES
因此,如果我们看字符串的第一部分(
01;01;283;póvoa do Vale do Trigo;15315100
),我想继续讨论的是:

01;01;283
把剩下的东西拿走

在任何情况下,但看看第一个例子…: 01始终是一个永远不会超过2的数字(不是040、150505或4075) 下一个01也一样,永远不会优于2(不是405、1565或425) 那么283是一个更大的数字,它会有所不同(可以是300或17581或40755794)

基本上,最后我只想看到每个部分的开头,如:

01;01;283
01;01;249
01;01;2504
05,80,104258
94,76,56789124
抱歉拼错了我是葡萄牙人


我忘了说,这些分离的部分将进入一个数组!因此正则表达式不应匹配,例如:

15315100 01;01;249

所以我不能用


我正在使用PREG_REPLACE

尝试以下方法:

/(\d+;\d+;\d+)/

应该有效。

尝试以下方法。正则表达式在匹配行中

$str = "***01;01;283***;Póvoa do Vâle do Trigo;15315100 ***01;01;249***;Alcafaz;;;;;;;;;;;3750;011;AGADÃO ";
preg_match_all("/\*\*\*[01][0-9];[01][0-9];[0-9]*\*\*\*.*?/", $str, $matches);
print_r($matches);

也许在
***XXX***

\*([\d;]+)\*

\*\*.+\*\*\*看起来会有用。不,这就是我想要保留的,并匹配其余的来删除它。这会给你你要求的号码。试试看,我想要相反的结果,因为我想删除的是01之后的文本;01;283 01;01;249 01;01;2504 05,80104258 94,7656789124我使用的是PREG_replace,我想要它的反面,因为我想要删除的是01之后的文本;01;283 01;01;249 01;01;2504 05,80104258 94,7656789124我正在使用PREG_replace上述代码删除除01以外的所有内容;01;283 01;01;249 01;01;250405,8010425894,7656789124介于两者之间。这就是你要求的,对吗?
\*([\d;]+)\*