Javascript 如何提取两个单词之间的句子并排除特殊字符
下面这句话来自一个json字符串,我只想解析字符串“value”部分的单词,即服务副本Javascript 如何提取两个单词之间的句子并排除特殊字符,javascript,regex,Javascript,Regex,下面这句话来自一个json字符串,我只想解析字符串“value”部分的单词,即服务副本 "customtext_230216":"self":"https://jsonapi.com/restsv/api/13/customtext/11233","value":"Service Copy","id":"11211"} 在进行了几次搜索之后,我得到了正则
"customtext_230216":"self":"https://jsonapi.com/restsv/api/13/customtext/11233","value":"Service Copy","id":"11211"}
在进行了几次搜索之后,我得到了正则表达式
\b(?<=value)(.*?)(?=\s*id)
我该如何增强这一点,以便不捕获特殊角色
预期结果:
Service Copy
如果您想坚持使用正则表达式:
(?<=value\":\")(.*?)(?=\s*\",\"id)
(?为什么不使用JSON.parse())
method to pars JSON string?这不是一个有效的JSON字符串。完整的JSON有几个嵌套,因此,既然这一行在上下文中是唯一的,那么正则表达式不是更容易吗?@Vishnudev,你在写,它不是有效的JSON,因为它只是完整JSON的一部分,因为我只对这一部分感兴趣,正则表达式不是更容易吗?你应该这样做永远不要使用正则表达式将JSON中的值提取为字符串,即使它嵌套得很重。这种结构是基于数据分层组织的特定原因而存在的。使用正则表达式提取多种数据类型格式(如数组)会遇到困难。因此不可取。仔细想想,我同意你的看法,这将是一个脆弱的过程卢顿,谢谢你的迅速反应。
(?<=value\":\")(.*?)(?=\s*\",\"id)