Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式替换除双引号外的所有逗号_Java_Regex - Fatal编程技术网

Java 正则表达式替换除双引号外的所有逗号

Java 正则表达式替换除双引号外的所有逗号,java,regex,Java,Regex,我想用正则表达式替换java中除双引号以外的所有逗号。我将输出作为\“Lee圆领,打印\”\410.00\300.00 \“红蓝\”\Lee“ 但我得到的是“Lee圆领”印刷品“410.00 300.00”“红蓝”#Lee String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee"; String repl = line.replaceAll("(?!\")\\,", "#"); Syste

我想用正则表达式替换java中除双引号以外的所有逗号。我将输出作为
\“Lee圆领,打印\”\410.00\300.00 \“红蓝\”\Lee“

但我得到的是
“Lee圆领”印刷品“410.00 300.00”“红蓝”#Lee

String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee";
    String repl = line.replaceAll("(?!\")\\,", "#");
    System.out.println("Replaced => " + repl);
请有人在这方面帮助我

试试看

line.replaceAll(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", "#");
试试

line.replaceAll(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", "#");
试试

line.replaceAll(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", "#");
试试

line.replaceAll(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", "#");
不带正则表达式:

String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee";
System.out.println(line);

char[] line2 = line.toCharArray();
boolean insideQuotes = false;
for (int i = 0; i < line.length(); ++i) {
  if (line.charAt(i) == '\"')
    insideQuotes = !insideQuotes;
  else if (line.charAt(i) == ',' && !insideQuotes)
    line2[i] = '#';
}
line = String.valueOf(line2);
System.out.println(line);
不带正则表达式:

String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee";
System.out.println(line);

char[] line2 = line.toCharArray();
boolean insideQuotes = false;
for (int i = 0; i < line.length(); ++i) {
  if (line.charAt(i) == '\"')
    insideQuotes = !insideQuotes;
  else if (line.charAt(i) == ',' && !insideQuotes)
    line2[i] = '#';
}
line = String.valueOf(line2);
System.out.println(line);
不带正则表达式:

String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee";
System.out.println(line);

char[] line2 = line.toCharArray();
boolean insideQuotes = false;
for (int i = 0; i < line.length(); ++i) {
  if (line.charAt(i) == '\"')
    insideQuotes = !insideQuotes;
  else if (line.charAt(i) == ',' && !insideQuotes)
    line2[i] = '#';
}
line = String.valueOf(line2);
System.out.println(line);
不带正则表达式:

String line="\"Lee Rounded Neck, Printed\" 410.00 300.00,\"Red Blue\",lee";
System.out.println(line);

char[] line2 = line.toCharArray();
boolean insideQuotes = false;
for (int i = 0; i < line.length(); ++i) {
  if (line.charAt(i) == '\"')
    insideQuotes = !insideQuotes;
  else if (line.charAt(i) == ',' && !insideQuotes)
    line2[i] = '#';
}
line = String.valueOf(line2);
System.out.println(line);

以下是它在Perl中的外观:
s/((?:[^“,]|“(?:[^“\]\\\)*”),/$1#/g
。这也允许
在带引号的字符串中用反斜杠转义。
$1
指第一个括号内的表达式;我希望有一种方法用Java来表达。以下是它在Perl:
中的外观:/((?:[^“,]|“(?:[^“\\]\\\\)*”),/$1#/g
。这也允许
带引号的字符串中用反斜杠进行转义。
$1
引用了第一个带括号的表达式;我希望有一种方法可以在Java中表达这一点。以下是它在Perl:
s/(?:[^>,],],][/code>中的样子(?:\*),/$1#/g
。这也允许
在带引号的字符串中用反斜杠转义。
$1
指的是第一个带括号的表达式;我希望有一种方法可以用Java来表达。以下是它在Perl中的外观:
s/(?:[^,]|“(?:[^”\],](?:[^“\”)*),/$1
。这也允许
在带引号的字符串中用反斜杠转义。
$1
指的是第一个带括号的表达式;我希望有一种方法可以用Java来表示。