我有一个正则表达式可以处理99%的情况。但是有一个不起作用
我的输入是这样的
MyString=[XXXXXX:XX XX XX XX, XXXXX:332.83, XXXXX:XXX-XX-XX XX:XX:XX, XXXX:0.0, XXXX:2, XXXX:0, XXXX:-256, XXXXX:5, XXXX:136935, XXXX:0, XXXX:XX XXX XXX, XXXX:0.5, XXXXX:true, XXXX:0.509375, XXX:0.0, [XXXX:2022-06-14 06:45:00], 2022-09-17,XXXXX:1]
此正则表达式允许匹配第一个[
和最后一个]
之间的所有key:value
(?<=(?<!: *)\[).*?(?=,)|(?<=, *(?=[^ \r\n]))(?:.*?(?=,)|[^,\r\n\[\]]+?(?=\])|[^,\r\n]+\](?= *\]))
当检测到逗号时,它会拆分所有key:value
,但我有特定的数据,其中逗号后面没有空格。例如,我的示例的最后一个日期被拆分,因为,
。我搜索以排除此拆分匹配,以匹配所有2022-09-17,XXXXX:1
我搜索一个正则表达式,它只匹配由,
分隔而不是由,
分隔数据
下面是一个示例,其中拆分了我搜索的最后一个数据以防止https://regex101.com/r/8fd7Xv/1
1条答案
按热度按时间vh0rcniy1#
您可以在要使用逗号的位置加入一个空格,或一个或多个空格。
请参阅更新的病毒码https://regex101.com/r/Dlx8Xi/1