繁体   English   中英

php regex 从第二次出现字符开始?

[英]php regex start at the second occurrence of a character?

我已经为此奋斗了一段时间,我有这个字符串: 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

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

使用数字\\d匹配:

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

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

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

见演示https://regex101.com/r/mL3aF7/1

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

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

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

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

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM