
1 cnqncom OP $re = '/"Title":"([^"]+)",/'; |
2 Telegram 2018-03-06 15:53:57 +08:00 via iPhone 标准 json,你为啥要用正则 |
4 shifangjumie 2018-03-06 16:32:26 +08:00 json_decode 之后取不出来么? |
5 zhuzhuyule 2018-03-06 16:46:47 +08:00 一次匹配: ``` reg1=/,\s*"body":"([^"]*)"[\w\W]*?,\s*"transTime":"([^"]*)"/ ``` 循环匹配: ``` reg2=/,\s*"(body|transTime)":"([^"]*)"/g ``` |
6 symeonchen 2018-03-06 16:58:33 +08:00 via Android 简单版本: ``` "body":"[^"]+" ``` 和 ``` "transTime":"[\w]+" ``` 正则不见得快多少,用 Json 解析更方便 |
7 MuscleOf2016 &bsp; 2018-03-06 17:00:25 +08:00 推荐一个网站,妈妈再也不用怕我写正则了。 http://www.txt2re.com/index-Javascript.php3?s={%22returnCode%22:%220%22,%22resultCode%22:%220%22,%22sign%22:%2219333CD7F9710A104DA5D815709697D2%22,%22outChannelNo%22:%222017120100401000000017%22,%22status%22:%2202%22,%22mchId%22:%22000000010000000002%22,%22channel%22:%22wxPubQR%22,%22body%22:%22%26%2325910;%26%2321333;%26%2325903;%26%2320184;%22,%22outTradeNo%22:%2220171201150337579753%22,%22amount%22:0.01,%22transTime%22:%2220171201150337%22}&6 |
8 VgV 2018-03-06 18:48:45 +08:00 直接用 json_decode 就可以了呗,像调用数组那样。 你不会写正则也许还会匹配错,但你直接用 json_decode 函数解出来再用数组调用就准确多了, 除非你提供的字符串不是 json $arr = json_decode(字符串,true); print_r($arr); |
9 br00k 2018-03-06 23:47:30 +08:00 正常路不走,非要走野路子。 |
10 mingyun 2018-03-06 23:49:53 +08:00 @MuscleOf2016 666 |
11 fox0001 2018-03-07 05:40:24 +08:00 via Android 既然是标准 JSON 字符串,还是解析 JSON 方便,正则表达式提取要考虑格式变换(例如双引号变成单引号,空格增多或减少)的情况 |
12 toxicant 2018-03-07 10:46:07 +08:00 对啊... json_decode 1 分钟能找到的东西 用正则还得去 v2 问。 |
13 scriptB0y 2018-03-07 11:24:04 +08:00 用 json 库解析未必比 re 慢啊 |
14 ericgui 2018-03-07 11:41:35 +08:00 理解不了为什么不用 jso 解析。实在理解不了。 |
15 crane2018 2018-03-07 14:30:08 +08:00 美特斯邦威:不走寻常路 |