如何使用RegExp替换除双引号之外的所有标点符号
我正在尝试做一些字符串清理。
我想从字符串中删除除双引号之外的所有标点符号。
下面的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(); }
有关标点符号unicode类的更多信息,请点击此处 。 但是,这对我没有帮助。
您可以使用负向前瞻 。
(?!")\\p{punct}
Rubular演示
Java示例 :
String string = ".\"'"; System.out.println(string.replaceAll("(?!\")\\p{Punct}", ""));