我在C#中有一堆Json样式字符串,我正在尝试将实际存在于CS文件中的原始字符串转换为string.format以帮助参数化Web请求。
到目前为止,我还没有找到有用的东西。
我需要一个匹配这两个字符串的正则表达式:
"{\"effectiveTimestamp\":null
\"foo\":1029231}");
我的正则表达式如下所示
\s*\"?{?(.*?):(.*)(?:}\"\);)?
我为最后2个捕获组尝试了不同的贪婪和非贪婪变体。
\s*\"?{?(.*?):(.*)(?:}\"\);)*
\s*\"?{?(.*?):(.*)(?:}\"\);)*?
\s*\"?{?(.*?):(.*?)(?:}\"\);)*
\s*\"?{?(.*?):(.*?)(?:}\"\);)*?
以及尝试匹配0或1次
\s*\"?{?(.*?):(.*)(?:}\"\);)?
但无论我做什么,它都无法在第一个字符串或第二个字符串中获取第二个组。在这两种情况下,我都无法正确地抓住第二组。
得到马特的答案:
这抓住了我需要的东西。
([\w\\"]*):([\w\\"]+)