php中blackslah之后获取字符串

php中blackslah之后获取字符串,php,mysql,regex,Php,Mysql,Regex,这是我的问题。我想从下面的字符串中获取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

这是我的问题。我想从下面的字符串中获取
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

您可以使用
^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})

在双引号内,您需要双反斜杠:
“\\\\”
您想只获得2017年吗?或者其他一些字符串的值不是2017?事实上,我希望得到2017年9月26日,我需要它使之最新。好的,我已经更新了我的答案。为什么要使用正则表达式?Explode将执行相同的操作,但速度更快,内存使用更少。它说什么?警告:preg_match():编译失败:第72行C:\xampp\htdocs\Champion\logtxt.php中偏移量35处的括号不匹配如果仍然不起作用,则需要“双反斜杠”
$line
,例如:
$line=“File=D:\\Shared\print\\2017年9月26日\\printing\\baryun-cetak transferpaper.tif”仍然不工作。你说更新字符串。但是我想在不对字符串做任何操作的情况下获取值,这不起作用,因为在PHP中还需要转义反斜杠。