<pre id=\"best-answer-content\" class=\"reply-text mb10\">这个解析json并不通用
首先这个串分成两部分,看中间的或符号(|)
\"(\\\\.|[^\\\\\\n\\r])*?\"和[,:{}\\[\\]0-9.\\- Eaeflnr-u \\n\\r\\t]
先分解\"(\\\\.|[^\\\\\\n\\r])*?\"
它匹配一个双引号的字符串,两边引号不说了括号内一个“|”又分成两段 “\\\\.“匹配一个转义字符
比如js字符串里的\\n,\\r,\\\',\\\"等。[^\\\\\\n\\r]匹配一个非\\,回车换行的字符 其实它就是js里字符串的规则---不包含回车换行,回车换行用 \\n\\r表示,\\后面跟一个字符表示转义
其次看[,:{}\\[\\]0-9.\\- Eaeflnr-u \\n\\r\\t]
它匹配一个单个字符,这个字符可以是 ,,:,{,},[,],数字,除 \"\\n\" 之外的任何单个字符,-, ,E,a,e,f,l,n,r-u之间的字符,回车,换行,制表符,
就这些
结合起来,它其实把一个json拆分成若干段,字符串单独成一段,其它的都是单个字符成段(回车,换行,:,{,}等)
<h4 class=\"ask\">追问
<pre class=\"replyask-text\" id=\"content-2239793\">纳闷,既然.匹配了除\\n外的任何单个字符,为什么还要加\\- Eaeflnr-u,E和e应该是对数的符号,但另外几个不是多余的吗
|