我需要在 Java 中执行以下正则表达式:
在每个逗号处拆分一个字符串,该字符串前面没有反斜杠(即转义),后跟零个或多个空格。
我一直在尝试这个:
String str = "Name=Doe\, Jane, Hobby=Skiing, Height=1.70";
String[] parts = str.split("[^\\],\s*");
这是 Perl 中的正确语法并在那里工作。在 Java 中并非如此。
以上在编译过程中已经抛出异常:
error: illegal escape character
String[] parts = str.split("[^\\],\s*");
在字符类中添加第三个和第四个反斜杠没有帮助
str.split("[^\\\\],\s*");
在空白处添加第二个反斜杠允许它编译,
String[] parts = str.split("[^\\],\\s*");
但随后出现运行regex.PatternSyntaxException
时,说明unclosed character class
:
java.util.regex.PatternSyntaxException: Unclosed character class
near index 7
[^\],\s*
^
显然缺少一个反斜杠,我无法将其输入...谁能告诉我这应该如何在 Java 中完成?
谢谢!