Home > Java > javaTutorial > How to Split Comma-Separated Text While Ignoring Commas Within Quotes?

How to Split Comma-Separated Text While Ignoring Commas Within Quotes?

Barbara Streisand
Release: 2024-12-02 08:16:10
Original
854 people have browsed it

How to Split Comma-Separated Text While Ignoring Commas Within Quotes?

Splitting Comma-Separated Text Excluding Quotes

When processing comma-separated text with embedded quotes, it becomes necessary to ignore commas within the quoted sections. This issue arises when using the default string.split(",") method in Python.

Consider the following string:

"123,test,444,\"don't split, this\",more test,1"
Copy after login

Splitting this string using the default method would yield the following result:

["123", "test", "444", "\"don't split", " this\"", "more test", "1"]
Copy after login

As you can see, the comma inside the quoted section is not ignored. To address this, a regular expression is required.

str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")
Copy after login

Explanation of the Regular Expression:

  • **,: Splits the string on commas.
  • **(?=(d $)): Lookahead assertion that ensures that the split occurs only if it is followed by an even number of double quotes.
  • *(?:w"w"): Captures multiple quoted strings.
  • *.$: Captures the remaining unquoted text.

This regular expression ensures that only commas outside of quoted sections are recognized as separators.

Alternatively, using the (?x) modifier in Python allows you to break down the regular expression into multiple lines for improved readability:

str.split("(?x)\n\
        ,          \n\
        (?=\n\
        (?:       \n\
            [^\"]*  \n\
            \"       \n\
            [^\"]*  \n\
            \"       \n\
        )*       \n\
        [^\"]*    \n\
        $        \n\
        )          \n")
Copy after login

This code effectively splits the input string into a list where each element represents a substring separated by a comma outside of any quoted sections.

The above is the detailed content of How to Split Comma-Separated Text While Ignoring Commas Within Quotes?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template