【发布时间】:2017-07-07 08:43:45
【问题描述】:
我有一个带有rule 字段的数组,其中包含这样的字符串:
FREQ=MONTHLY;BYDAY=3FR
FREQ=MONTHLY;BYDAY=3SA
FREQ=WEEKLY;UNTIL=20170728T080000Z;BYDAY=MO,TU,WE,TH,FR
FREQ=MONTHLY;UNTIL=20170527T100000Z;BYDAY=4SA
FREQ=WEEKLY;BYDAY=SA
FREQ=WEEKLY;INTERVAL=2;BYDAY=TH
FREQ=WEEKLY;BYDAY=TH
FREQ=WEEKLY;UNTIL=20170610T085959Z;BYDAY=SA
FREQ=MONTHLY;BYDAY=2TH
每一行都是一个不同的数组,我提供了一些线索来了解我需要什么。
我需要的是写一个正则表达式来去掉所有不必要的值。
所以,我不需要 FREQ= ; BYDAY= 等。我基本上需要 = 之后的值,但我想将每个值存储在不同的变量中。
以第三个为例:
$frequency = WEEKLY
$until = 20170728T080000Z
$day = MO, TU, WE, TH, FR
它不一定是一个正则表达式,每个值可以有一个正则表达式。所以我有一个 FREQ:
preg_match("/[^FREQ=][A-Z]+/", $input_line, $output_array);
但很遗憾,我无法做到这一点,我该如何解决这个问题?
【问题讨论】:
-
不,不是爆炸()。 preg_split() 是解决方案!
-
如果应该使用 preg_split,你能提供一个解决方案吗?据我所知 preg_split 会给出一个结果数组并记住每个值都必须转到一个变量
标签: php regex laravel laravel-5