0

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

到目前为止,我还没有想出可行的方法。

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

    "{\"effectiveTimestamp\":null

\"foo\":1029231}");

我的正则表达式如下所示

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

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

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

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

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

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

以及尝试匹配 0 或 1 次

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

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

从马特那里得到答案:

这捕获了我需要的东西。

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

4

1 回答 1

2

这个怎么样?

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

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

于 2012-09-12T16:17:45.060 回答