首頁 > Java > java教程 > 如何在保留引號的同時拆分逗號分隔的文字?

如何在保留引號的同時拆分逗號分隔的文字?

Susan Sarandon
發布: 2024-12-02 02:21:10
原創
467 人瀏覽過

How Can I Split Comma-Separated Text While Preserving Quotes?

使用逗號分割文字同時保留引號

解析逗號分隔的文字時,處理逗號出現在帶引號的子字串中的情況非常重要,例如這個例子:

123,test,444,"don't split, this",more test,1
登入後複製

分割這個使用預設的String.split(",") 方法以逗號分隔字串會產生:

123
test
444
"don't split
 this"
more test
1
登入後複製

如您所見,「don't split, this」引號中的逗號被錯誤地解釋為分隔符.

要解決這個問題,需要更複雜的方法。在這種情況下,我們可以使用正規表示式以逗號分隔字串,而逗號後面不跟偶數個雙引號。這可確保帶引號的子字串內的逗號不會被誤認為分隔符號。

str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
登入後複製

此正規表示式使用下列邏輯:

  • (?=):向前看斷言確保:

    • ( ?:[^"]*"[^"]*")*:符合用雙引號括起來的任意數量的子字串。
    • [^"]* :符合任意數量的非引號字元。
    • $:字串結尾

換句話說,先前瞻檢查目前逗號後面是否有偶數個雙引號以及字串結尾(如果是的話)。 ,表示逗號不在引號的子字串內,可以被視為分隔符,否則,逗號將被忽略。

在此版本中,修飾符(?x) 用於透過忽略空白字元來增強正規表示式的可讀性。

以上是如何在保留引號的同時拆分逗號分隔的文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板