正则表达式:删除引号内的逗号
Regex: Remove Commas within quotes
我正在使用 NiFi,我有一系列 JSON 如下所示:
{
"url": "RETURNED URL",
"repository_url": "RETURNED URL",
"labels_url": "RETURNED URL",
"comments_url": "RETURNED URL",
"events_url": "RETURNED URL",
"html_url": "RETURNED URL",
"id": "RETURNED_ID",
"node_id": "RETURNED id",
"number": 10,
...
"author_association": "xxxx",
"active_lock_reason": null,
"body": "text text text, text text, text text text, text, text text",
"performed_via_github_app": null
}
我的重点是“body”属性。因为我将它们合并成一个巨大的 JSON 以转换为 csv,所以我需要“正文”文本中的逗号消失(以帮助以后可能的 NLP)。我知道我可以只使用替换文本,但捕获逗号本身是我正在努力的部分。到目前为止,我有以下内容:
((?<="body"\s:\s").*(?=",))
不过,我看过的每本指南都与引号中的逗号不匹配。有什么建议吗?
您可以使用
(\G(?!^)|\"body\"\s*:\s*\")([^\",]*),
如果字符串中有转义序列使用
(\G(?!^)|\"body\"\s*:\s*\")([^\",\]*(?:\.[^\",\]*)*),
参见 regex demo (and regex demo #2),替换为 </code>。</p>
<p><em>详情</em>:</p>
<ul>
<li><code>(\G(?!^)|\"body\"\s*:\s*\")
- 第 1 组:上一场比赛结束或 "body"
,零个或多个空格,:
,零个或多个空格
([^\",]*)
- 第 2 组 (</code>):除 <code>"
和 ,
之外的任何零个或多个字符
,
- 逗号(即 removed/replaced)。
我正在使用 NiFi,我有一系列 JSON 如下所示:
{
"url": "RETURNED URL",
"repository_url": "RETURNED URL",
"labels_url": "RETURNED URL",
"comments_url": "RETURNED URL",
"events_url": "RETURNED URL",
"html_url": "RETURNED URL",
"id": "RETURNED_ID",
"node_id": "RETURNED id",
"number": 10,
...
"author_association": "xxxx",
"active_lock_reason": null,
"body": "text text text, text text, text text text, text, text text",
"performed_via_github_app": null
}
我的重点是“body”属性。因为我将它们合并成一个巨大的 JSON 以转换为 csv,所以我需要“正文”文本中的逗号消失(以帮助以后可能的 NLP)。我知道我可以只使用替换文本,但捕获逗号本身是我正在努力的部分。到目前为止,我有以下内容:
((?<="body"\s:\s").*(?=",))
不过,我看过的每本指南都与引号中的逗号不匹配。有什么建议吗?
您可以使用
(\G(?!^)|\"body\"\s*:\s*\")([^\",]*),
如果字符串中有转义序列使用
(\G(?!^)|\"body\"\s*:\s*\")([^\",\]*(?:\.[^\",\]*)*),
参见 regex demo (and regex demo #2),替换为 </code>。</p>
<p><em>详情</em>:</p>
<ul>
<li><code>(\G(?!^)|\"body\"\s*:\s*\")
- 第 1 组:上一场比赛结束或 "body"
,零个或多个空格,:
,零个或多个空格
([^\",]*)
- 第 2 组 (</code>):除 <code>"
和 ,
,
- 逗号(即 removed/replaced)。