【发布时间】:2023-02-21 00:25:09
【问题描述】:
我想编写一个正则表达式来检测以下字符串中的所有逗号,但应排除字典数据中“{ 和}”之间的逗号 这是字符串:
CREATED,860,"{\"node-id\":\"OWBRDMNE7\",\"change-type\":\"CREATED\",\"additional-info\":{\"response-message\":\"OTDR Scan operation completed in NE. File transfer to the Repository failed due to Repository error ,details is::Unable to create directory\",\"resource-type\":\"degree\",\"resource-name\":\"1\",\"status\":\"Failure\"},\"object-type\":\"otdr\",\"internalgeneratedepoch\":1676483708151000,\"topic-name\":\"OTDR\",\"object-id\":\"OWBRDMNE7_1_otdr_object\",\"internaleventid\":860}",1676483708151000,OWBRDMNE7,OWBRDMNE7_1_otdr_object,otdr
它适用于除一种情况以外的所有情况。逗号前有一个空格,但不排除(此处打印了其中的一部分): “由于存储库错误而失败,详细信息是” 但是我无法弄清楚如何忽略空白后面的这个逗号。破解此问题的任何线索都会有很大帮助。
我试过这个正则表达式,它适用于所有其他逗号:
,(?![^()]+\))(?=[a-zA-Z0-9"\/,(])
【问题讨论】:
-
欢迎来到堆栈溢出。 "This is the String:" 对于这个字符串,结果应该是什么,为什么?该字符串实际上是否包含这些反斜杠,或者您只是将其显示为代码语法?
-
这是一些转义的 JSON 字符串吗?
-
@Jan 是它的 json 字符串
-
"{\"node-id\":\"OWBRDMNE7\",\"change-type\":\"CREATED\",\"additional-info\":{\"response-message\":\"OTDR扫描操作在 NE 中完成。由于存储库错误,文件传输到存储库失败,详细信息是::无法创建目录\",\"resource-type\":\"degree\",\"resource-name\":\"1\", \"status\":\"Failure\"},\"object-type\":\"otdr\",\"internalgeneratedepoch\":1676483708151000,\"topic-name\":\"OTDR\",\ "object-id\":\"OWBRDMNE7_1_otdr_object\",\"internaleventid\":860}" 要排除此字符串中的所有逗号,但不会排除此字符串中空格后的逗号