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="+-------+--------------+-------------------------------------------+-------+--------+--------------+--------------+------------------+----------------------------------------------------------------+----------+-----------------+“;
你问的问题是关于空格的。这是一个完全不同的字符串,根本没有空格,实际上有+和-符号。