【问题标题】:get string after blackslah in php在php中的blackslah之后获取字符串
【发布时间】:2017-10-03 02:50:28
【问题描述】:

这是我的问题。我想从下面的字符串中获取2017。我已经尝试了下面的代码,但它不起作用。我想使用正则表达式,但我不明白反斜杠。

代码:

$str = explode("\","File=D:\Shared\print\2017\september\26\printing\baryun - cetak transferpaper.tif");
    echo $str[count($str)-5];

字符串:

File=D:\Shared\print\2017\september\26\printing\baryun - cetak transferpaper.tif

【问题讨论】:

  • 双引号内需要双反斜杠:"\\"
  • 您只想获得 2017 年?或者其他一些字符串的值不是 2017?
  • 其实我想得到 2017 年 9 月 26 日,我需要它来保持日期。
  • 好的,我已经更新了答案。
  • 为什么要使用正则表达式? Explode 会做同样的事情,但速度更快,内存使用更少。 3v4l.org/rQs0k

标签: php mysql regex


【解决方案1】:

你可以使用^File=D:\\[a-zA-Z]+\\[a-z]+\\([0-9]{4})匹配它

即:

<?php
   $line = 'File=D:\Shared\print\2017\september\26\printing\baryun - cetak transferpaper.tif';
    $r = "/^File=D:\\\\[a-zA-Z]+\\\\[a-z]+\\\\([0-9]{4})\\\\([a-z]+)\\\\([0-9]{1,2})/";

   if (preg_match($r, $line, $match)) {
      print $match[1];
      }
?>

要匹配年月日,请使用^File=D:\\\\[a-zA-Z]+\\\\[a-z]+\\\\([0-9]{4})\\\\([a-z]+)\\\\([0-9]{1,2})

【讨论】:

  • 它说什么?
  • 警告:preg_match():编译失败:第 72 行 C:\xampp\htdocs\Champion\logtxt.php 中偏移 35 处的括号不匹配
  • 如果还是不行,那么你需要“双反斜杠”$line 这样:$line = "File=D:\\Shared\print\\2017\\september\\26\\printing\\baryun - cetak transferpaper.tif";
  • 还是不行。你说更新字符串。但我想在不对字符串做任何事情的情况下获得价值。
  • 它不起作用,因为在 PHP 中您还需要转义反斜杠。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2017-11-15
  • 2014-02-18
  • 2013-03-12
相关资源
最近更新 更多