Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 如何在preg_split中包含分隔符模式?_Php - Fatal编程技术网

Php 如何在preg_split中包含分隔符模式?

Php 如何在preg_split中包含分隔符模式?,php,Php,好的,我正在尝试捕获一个特定的日期时间格式,并将一个长字符串拆分为数组。字符串是一个聊天日志,我想让它成为一个消息数组,每行的日期时间作为数组键,消息的其余部分作为数组索引内容。每个消息中都可能包含换行符,所以它应该保留换行符并将其添加到数组中,这就是我用来拆分它的方法。但是它会删除搜索分隔符,我不想这样做 数据字符串如下所示: 5/5/18, 11:48 AM - +[somePhoneNumberHere] created group "someChatNAme" 5/5/18, 11:48

好的,我正在尝试捕获一个特定的日期时间格式,并将一个长字符串拆分为数组。字符串是一个聊天日志,我想让它成为一个消息数组,每行的日期时间作为数组键,消息的其余部分作为数组索引内容。每个消息中都可能包含换行符,所以它应该保留换行符并将其添加到数组中,这就是我用来拆分它的方法。但是它会删除搜索分隔符,我不想这样做

数据字符串如下所示:

5/5/18, 11:48 AM - +[somePhoneNumberHere] created group "someChatNAme"
5/5/18, 11:48 AM - You were added
2/6/19, 8:22 AM - +[somePhoneNumberHere] : <Media omitted>
2/6/19, 8:41 AM - +[somePhoneNumberHere]: 
$file = preg_split('/\R(?=(\d{1,2}\/){2}\d{1,2}, \d{1,2}:\d{1,2} (A|P)M - )/', $string);
5/5/18,11:48 AM-+[SomePhoneNumber]创建了组“someChatNAme”
2018年5月5日,上午11:48-您已被添加
19年6月2日,上午8:22-+[SomePhoneNumber]:

2/6/19,8:41 AM-+[SomePhoneNumberThere]:另一件事,如果第一个数字是4位,你能告诉我应该怎么做吗?=(\d{1,2})变为?@mfrHoujat假设你的日期是
YYYY/MM/DD
,月份和天数可以是1或2位,你需要将这部分
(\d{1,2}/{code>改为
{d{4}/\d{1,2}\/
另一件事,如果第一个数字是4位,你能告诉我应该把(\d{1,2})改成什么吗?@mfrHoujat假设你的日期是
YYYY/MM/DD
并且月份和天数可以是1位或2位,你需要把这部分
(\d{1,2}){2}
改成
\d{4}/\d{1,2}/