我有一個正則運算式可以處理 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
uj5u.com熱心網友回復:
您可以在斷言逗號的位置添加一個空格或 1 個或多個空格。
(?<=(?<!: *)\[).*?(?=, )|(?<=, (?=[^ \r\n]))(?:.*?(?=, )|[^,\r\n\[\]] ?(?=\])|[^,\r\n] \](?= *\]))
請參閱更新后的模式https://regex101.com/r/Dlx8Xi/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/535053.html
標籤:正则表达式扑镖