PHP: preg_split插入符号和散列标签字符串


PHP: preg_split caret and hash tag string

如何分割文件名在哪里是插入符?如:

6543534 - 001 # 6543534 ^ 16.00.54.JPG

我想把#和^分开。如2016-06-13 16.00.54

我试过这个:

<?php $str = $file['name']; $chars = preg_split('/^#/', $str); print_r($chars); ?>
  1. 插入符号^匹配一行的开头,因此您需要转义它以将其用作普通字符
  2. 使用管道|进行更改,以匹配字符
  3. 中的任何一个

所以你想要这样:

$chars = preg_split('/'^|#/', $str);

工作示例:https://3v4l.org/PrTEJ


或者你可以像这样使用字符类[#^]:

$chars = preg_split('/[#^]/', $str);

两种方法都可以得到一个包含三个元素的数组。


专业提示:将此与list()方法相结合,并在一步中将字符串分开为单独的变量!

list($number, $date, $filename) = preg_split('/[#^]/', $str);
echo $date . " " . $filename; // 2016-06-13 16.00.54.JPG