【问题标题】:Split String into Parts Laravel将字符串拆分为多个部分 Laravel
【发布时间】:2019-08-27 09:52:18
【问题描述】:

我是一名新程序员,我想在 Laravel 中使用正则表达式拆分文件名以从中获取日期

filename: 999_20181502_api.txt

所以我想获取日期为 20181502 或类似 2018-15-02

【问题讨论】:

  • 文件名总是是那种格式吗?一些数字,然后是下划线,然后是日期,然后是下划线,然后是字符串?
  • 你对各种字符串操作函数做过研究吗?
  • @Qirel 是的,总是这种格式
  • 然后使用explode('_', $filename)并使用第二个元素。
  • "出于某些原因,我希望它使用正则表达式" 而这些原因到底是什么?如果它们不是好的理由,那为什么要把事情复杂化呢?

标签: php regex laravel


【解决方案1】:

使用此模式:(?<=_)\d{8}(?=_)

Demo

解释:

(?<=_) 正向向后看,断言前面的内容是否是下划线

\d{8} - 匹配 8 位数字

(?=_) - 断言后面是下划线

【讨论】:

  • 谢谢,如果我更喜欢这样的结果,还有最后一个问题:2019-03-27 我该怎么办?
  • @Gavroch 使用略有不同的模式 (?<=_)(\d{4})(\d{2})(\d{2})(?=_) 并用替换模式 \1-\2-\3 替换它
猜你喜欢
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
  • 2011-06-14
  • 1970-01-01
  • 2019-07-25
相关资源
最近更新 更多