Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Preg Match - Fatal编程技术网

php中某些匹配的正则表达式

php中某些匹配的正则表达式,php,regex,preg-match,Php,Regex,Preg Match,我有一个正则表达式 [^|]+(|[^|]+){15} 下一行 | 1 | 2567 | Алма-атинська(І) вул. | 2 | 2 |5678 |Типовий лічил-|Санвузол | 15.12.2016 | 10.11.2016 | 10.11.2020 | 23.10.2017 | | 43.00 |bot | 它的工作很好

我有一个正则表达式

[^|]+(|[^|]+){15}
下一行

|     1 |  2567 | Алма-атинська(І) вул.                     | 2     | 2      |5678     |Типовий лічил-|Санвузол          | 15.12.2016 | 10.11.2016 | 10.11.2020 | 23.10.2017 |            |    43.00 |bot       |
它的工作很好,我得到了“|”之间的所有文本,但是如何传递这些匹配的字符串呢?例如,修剪所有的退格,或删除一些子字符串。

您可以
分解()
,然后
修剪()
删除额外的空格等。最后使用
数组\u过滤器
从数组中删除空白值:

$str = '|     1 |  2567 | Алма-атинська(І) вул.                     | 2     | 2      |5678     |Типовий лічил-|Санвузол          | 15.12.2016 | 10.11.2016 | 10.11.2020 | 23.10.2017 |            |    43.00 |bot       |';
$arr = array_filter(array_map(function($value){return trim($value);},explode('|', $str)));
print_r($arr);
输出:

Array ( [1] => 1 [2] => 2567 [3] => Алма-атинська(І) вул. [4] => 2 [5] => 2 [6] => 5678 [7] => Типовий лічил- [8] => Санвузол [9] => 15.12.2016 [10] => 10.11.2016 [11] => 10.11.2020 [12] => 23.10.2017 [14] => 43.00 [15] => bot )

那么,您想删除整个字符串之间的额外空格吗?请提供一个输出,您希望看到您的正则表达式等于
[^ |]+
,问题不清楚。@pr1nc3,修剪空格,格式如下:$m[0]=1$m[1]=2567$m[2]=АаМ-ааааааа获取“(”等)前面的文本。“我如何传递此匹配的任何规则”。这到底是什么意思?但如果字符串不包含此模式,我如何转义它?例如,此行:
$str="+-------+--------------+-------------------------------------------+-------+--------+--------------+--------------+------------------+----------------------------------------------------------------+----------+-----------------+“;
你问的问题是关于空格的。这是一个完全不同的字符串,根本没有空格,实际上有+和-符号。