Php 从文件中提取哈希的正则表达式

Php 从文件中提取哈希的正则表达式,php,regex,hash,Php,Regex,Hash,我有一个以下格式的文件: 5:Name: {"hash":"c602720140e907d715a9b90da493036f","start":"2016-02-20","end":"2016-03-04"} 5:Name: {"hash":"e319b125d71c62ffd3714b9b679d0624","sa_forum":"on","start":"2015-11-14","end":"2016-02-20"} 我正在尝试使用正则表达式提取哈希键和日期。 我怎么做 我尝试了这个/^[

我有一个以下格式的文件:

5:Name: {"hash":"c602720140e907d715a9b90da493036f","start":"2016-02-20","end":"2016-03-04"}
5:Name: {"hash":"e319b125d71c62ffd3714b9b679d0624","sa_forum":"on","start":"2015-11-14","end":"2016-02-20"}
我正在尝试使用正则表达式提取哈希键和日期。 我怎么做

我尝试了这个
/^[a-z0-9]{32}$/
来进行散列,但它不起作用

我希望能得到一些帮助

编辑:这是一个文本文件,我正在尝试
preg\u match()
it。这是我的密码:

$file = file_get_contents("log.txt");

preg_match("/^[a-z0-9]{32}$/",$file, $hashes);
var_dump($hashes);

我得到一个空数组。

问题是,你与<代码> > <<代码>和<代码> $匹配,但实际上你想在字符串中间匹配一些东西。试试这个:

/(?<=")[a-f0-9]{32}(?=")/

在我上面的示例中,匹配项存储在数组
$matches[0]
中。

看起来像是一个json…解码它:
json\u deocde($string,true)否。它不是json。它是一个txt文件。正在尝试与之匹配。请显示与之匹配的代码。
php > $file = file_get_contents("hashfile.txt");
php > preg_match_all('/(?<=")[a-f0-9]{32}(?=")/', $file, $matches);
php > var_dump($matches);
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(32) "c602720140e907d715a9b90da493036f"
    [1]=>
    string(32) "e319b125d71c62ffd3714b9b679d0624"
  }
}
php >