php regex从第二次出现的角色开始?

时间:2015-10-07 19:25:30

标签: php regex

我已经和它斗争了一段时间,我有这个字符串: storage/12426--the sunflower boys--07-09-2014/Authorization letter/Authorization letter--4--09-15-2015--15-39.pdf

我希望只得到前两个斜杠之间的这个07-09-2014部分。

到目前为止,我想出了这个:--[^/]*只给了我--the sunflower boys--07-09-2014

我如何得到我正在寻找的东西?

4 个答案:

答案 0 :(得分:0)

使用数字\d匹配:

/^[^/]*\/[^/]*(\d\d-\d\d-\d\d\d\d)\//

答案 1 :(得分:0)

您可以在2个否定字符类中使用捕获组:

\/[^\/]*(\d{2}-\d{2}-\d{4})[^\/]*\/

请参阅演示https://regex101.com/r/mL3aF7/1

答案 2 :(得分:0)

如果格式一致,您可以在/上拆分并取第二组,然后在--上拆分并取第三组。

$date = explode('--', explode('/', $str)[1])[2];

答案 3 :(得分:0)

您可以使用基于匹配重置\K的正则表达式:

--[^-]*--\K[^/]*

RegEx Demo