问题描述
- json 正则表达式匹配问题
- 有json表达式{""a"":""aaaaaaaaa""aa"":""baaaaaaaaa""aa"":""caaaaaaaaa""b"":{""c"":1d"":""ddddd""}e"":[12597]}我用正则表达式/"".+"":""[^""]+""/想分别提取""a"":""aaaaaaaaa""和""aa"":""baaaaaaaaa""还有""aa"":""caaaaaaaaa""。但是运行结果确实直接""a"":""aaaaaaaaa""aa"":""baaaaaaaaa""aa"":""caaaaaaaaa""一整串。求高手知道这是为什么
解决方案
首先,[^""]这种写法是没必要的,因为在[]内部,""并不需要转义。其实整个正则里,“都不需要转义,因为你是用/作为分隔符的。
其次,你既然知道对第二个引号中的内容使用[^""]+匹配,你为什么不对一个引号内的内容也用[^""]+匹配呢?上面这是一种方法,另一种方法是/"".+?"":""[^""]+""/,即在第一个+后加一个?。
解决方案二:
用正则的分组 (),把需要的字段group取出来
时间: 2024-12-02 21:40:21