Wat*_*att 2 java regex string parsing
我正在尝试做一些字符串清理.
我想从字符串中删除除双引号之外的所有标点符号.
下面的trimPunctuation()函数可以很好地从字符串中删除所有标点符号.
有没有人知道删除所有标点符号但双引号的方法.
private String trimPunctuation( String string, boolean onlyOnce )
{
if ( onlyOnce )
{
string = string.replaceAll( "\\p{Punct}$", "" );
string = string.replaceAll( "^\\p{Punct}", "" );
}
else
{
string = string.replaceAll( "\\p{Punct}+$", "" );
string = string.replaceAll( "^\\p{Punct}+", "" );
}
return string.trim();
}
Run Code Online (Sandbox Code Playgroud)
有关标点符号unicode类的更多信息,请点击此处.但是,这对我没有帮助.
Bri*_*and 10
您可以使用负向前瞻.
(?!")\\p{punct}
Run Code Online (Sandbox Code Playgroud)
String string = ".\"'";
System.out.println(string.replaceAll("(?!\")\\p{Punct}", ""));
Run Code Online (Sandbox Code Playgroud)