需要帮助创建一个匹配某些包含json的c#字符串的正则表达式

时间:2012-09-12 16:11:01

标签: c# regex json

我在C#中有一堆Json样式字符串,我正在尝试将实际存在于CS文件中的原始字符串转换为string.format以帮助参数化Web请求。

到目前为止,我还没有找到有用的东西。

我需要一个匹配这两个字符串的正则表达式:

    "{\"effectiveTimestamp\":null

\"foo\":1029231}");

我的正则表达式如下所示

\s*\"?{?(.*?):(.*)(?:}\"\);)?

我为最后2个捕获组尝试了不​​同的贪婪和非贪婪变体。

\s*\"?{?(.*?):(.*)(?:}\"\);)*

\s*\"?{?(.*?):(.*)(?:}\"\);)*?

\s*\"?{?(.*?):(.*?)(?:}\"\);)*

\s*\"?{?(.*?):(.*?)(?:}\"\);)*?

以及尝试匹配0或1次

\s*\"?{?(.*?):(.*)(?:}\"\);)?

但无论我做什么,它都无法在第一个字符串或第二个字符串中获取第二个组。在这两种情况下,我都无法正确地抓住第二组。

得到马特的答案:

这抓住了我需要的东西。

([\w\\"]*):([\w\\"]+)

1 个答案:

答案 0 :(得分:2)

this怎么样?

(\w+)\\?\"\s*\:\s*(\w+)

在这里很难说出你想要什么,你能举例说明你期望在比赛中看到哪些小组吗?