仅限制一行的正则表达式
restricting the regular expression only for a line
我有一个来自其中一个系统的 CSV 文件。
""demo"",""kkkk""
""demo " ","fg"
" " demo" "
"demo"
"value1","" frg" ","vaue5"
"val3",""tttyy " ",""hjhj","ghuy"
Objective 删除所有 2 对双引号,只允许一组双引号,如下所示。双引号组之间的空格不是固定值。这必须在使用 replaceAll
的 Java 程序中处理
Java
中的函数
"demo","kkkk"
"demo","fg"
"demo"
"demo"
"value1","frg","vaue5"
"val3","tttyy","hjhj","ghuy"
我用 "[ ]*"
在 regex101 上厌倦了它,它适用于 PHP>=7.3 版本,但不适用于 Java。
还尝试了 [\"][\"]|[^\"]\s+[\"]
但仍未获得所需的输出。对于可用于 Java 程序的正则表达式有什么建议吗?
根据显示的示例数据,您可以使用:
String repl = str.replaceAll("(?:\h*\"){2}\h*", "\"");
正则表达式详细信息:
(?:\h*\"){2}
:匹配一对双引号之间有0个或多个空格
\h*
:匹配0个或多个空格
- 替换只是一个
"
我有一个来自其中一个系统的 CSV 文件。
""demo"",""kkkk""
""demo " ","fg"
" " demo" "
"demo"
"value1","" frg" ","vaue5"
"val3",""tttyy " ",""hjhj","ghuy"
Objective 删除所有 2 对双引号,只允许一组双引号,如下所示。双引号组之间的空格不是固定值。这必须在使用 replaceAll
Java
中的函数"demo","kkkk"
"demo","fg"
"demo"
"demo"
"value1","frg","vaue5"
"val3","tttyy","hjhj","ghuy"
我用 "[ ]*"
在 regex101 上厌倦了它,它适用于 PHP>=7.3 版本,但不适用于 Java。
还尝试了 [\"][\"]|[^\"]\s+[\"]
但仍未获得所需的输出。对于可用于 Java 程序的正则表达式有什么建议吗?
根据显示的示例数据,您可以使用:
String repl = str.replaceAll("(?:\h*\"){2}\h*", "\"");
正则表达式详细信息:
(?:\h*\"){2}
:匹配一对双引号之间有0个或多个空格\h*
:匹配0个或多个空格- 替换只是一个
"