我有以下字符串:
{\"id\":01,\"start_time\":\"1477954800000\",\"stop_time\":\"1485817200000\",\"url\":http:://www.example.com\}
我希望得到start_time(1477954800000)的值。 我在https://regex101.com/尝试了几件事,但我找不到处理字符串和值之间的特殊字符(\":\")的方法。
例如,如果字符串是 start_time = 1477954800000
我知道通过使用
start_time\":\"(\w+)/)
我会得到这个价值。 有关如何获得价值的任何想法\":\"参与了吗?
答案 0 :(得分:3)
您的示例数据看起来像一个字符串化的JSON对象,如果是这种情况,您应该使用JSON解析器而不是正则表达式:
#!perl
use strict;
use warnings;
use feature qw(say);
use JSON;
my $json_string = <DATA>;
chomp($json_string);
my $json_object = decode_json $json_string;
# get the value of the start_time key
say $json_object->{start_time};
# 1477954800000
__DATA__
{"id":1,"start_time":"1477954800000","stop_time":"1485817200000","url":"http://www.example.com"}