分割不包括引號的逗號分隔文字
處理帶有嵌入引號的逗號分隔文字時,有必要忽略引號內的逗號部分。在 Python 中使用預設的 string.split(",") 方法時會出現此問題。
考慮以下字串:
"123,test,444,\"don't split, this\",more test,1"
使用預設方法拆分此字串將產生以下結果結果:
["123", "test", "444", "\"don't split", " this\"", "more test", "1"]
如您所見,引用部分內的逗號不會被忽略。為了解決這個問題,需要使用正規表示式。
str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")
正規表示式說明:
此正規表示式確保只有引用部分以外的逗號才會被辨識為分隔符號。
或者,在Python 中使用(?x) 修飾符可以將正規表示式分解為多行以提高可讀性:
str.split("(?x)\n\ , \n\ (?=\n\ (?: \n\ [^\"]* \n\ \" \n\ [^\"]* \n\ \" \n\ )* \n\ [^\"]* \n\ $ \n\ ) \n")
此程式碼有效地將輸入字串拆分為一個列表,其中每個元素代表一個子字串,在任何引用的部分之外用逗號分隔。
以上是如何分割逗號分隔的文本,同時忽略引號內的逗號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!