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 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
理解不了为什么不用 json 解析。实在理解不了。
|
15
crane2018 2018-03-07 14:30:08 +08:00
美特斯邦威:不走寻常路😆
|