Regex 删除标点符号(保留字母数字和unicode)Java
尝试删除所有标点符号,但保留语言所需的所有字母数字和其他类似unicode类型的字符(即非数学符号)。例如:Regex 删除标点符号(保留字母数字和unicode)Java,regex,string,unicode,Regex,String,Unicode,尝试删除所有标点符号,但保留语言所需的所有字母数字和其他类似unicode类型的字符(即非数学符号)。例如: test1string => test1string test2-string => test2string test.3!string => test3string тестовоезадание!строка. => тестовоезад
test1string => test1string
test2-string => test2string
test.3!string => test3string
тестовоезадание!строка. => тестовоезаданиестрока
I suggest using
text.replaceAll("[\\p{P}\\p{S}]+|[\\p{L}&&[^\\x00-\\x{FFFF}]]+", "")
test1string=>test1string
test2字符串=>test2string
测试3!string=>test3string
тестовоезадание!строка. => тестовоезаданиестрока
我建议使用
详细信息
[\p{p}\p{S}]+
-1个或多个标点符号和符号
|
-或
[\p{L}&[^\x00-\x{FFFF}]+
-BMP平面中定义的字母以外的一个或多个字母
见a:
String text=“test1string\ntest2 String\ntest.3!String\nзззаааааа!заааааааааааааааа107(出于性能原因,这可能是首选)尝试text.replaceAll(“[\\p{p}\\p{S}]+|[\\p{L}&[^\\x00-\\x{FFFF}]]+”,”)