Home > Enterprise >  How to replace two words with blank space in a comma-separated String using regex in Java?
How to replace two words with blank space in a comma-separated String using regex in Java?

Time:10-21

I have the following String

""00001","Open","2020-10-23 12:45","2022-10-20 15:48","Error not found","Alex Smith","NO ERROR","ErrorApp","FOB","CNSHA","GB","Plane","MODEL","2020-10-24 00:00","New","1","","2022-10-20 15:48""

I need to replace the 4th and the last words (dates) with an empty String "".

I have tried several regex expressions but couldn't get them to work.

The result should be:

    ""00001","Open","2020-10-23 12:45","","Error not found","Alex Smith","NO ERROR","ErrorApp","FOB","CNSHA","GB","Plane","MODEL","2020-10-24 00:00","New","1","","""

This regex:

actualLines[1].replaceAll("^(\". ?\",\". ?\",\". ?\",\")([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2})(.*)$", "$1$3}");

It replaces the 4th, but I need both 4th and the last element to be replaced.

Does anyone know how this can be done? Thanks

CodePudding user response:

An idea to use an alternation for matching both, the fourth and last double-quoted part:

^((?:\"[^\"]*\",){3})\"[^\"]*\"|\"[^\"]*\"$

See this demo at regex101 or a Java demo at tio.run

Replace with $1\"\" where $1 is a reference to what's captured by the first group. It holds the first three comma separated quoted parts (?:"[^"]*",){3} where [^"] matches characters other than quotes. On the right side of the alternation the part at the $ end gets matched (and $1 is empty).

CodePudding user response:

Looks like a list, why not use indexing in whatever language your'e using to remove those specific positions?

  • Related