我想从Java字符串中一次性将多个特殊字符(如" "
、"-"
、"!"
、"_"
)删除,并用单个下划线"_"
替换它们。
我尝试过以下代码:
replaceAll("([\\s\\-\\!])\\1+","_")
看起来它会用下划线替换连续的相同类型的特殊字符,但在其他情况下不起作用。 例如:
Hello!!! World
变成
Hello__World
(两个下划线) 但应该是 Hello_World
。
对于像 Hello - World
这样的情况,它会失败。
我还尝试使用正则表达式,并制作了一个正则表达式,如下:
replaceAll("([^a-zA-Z0-9])\\1+","_")
但是这仍然没有帮助。我该如何实现它?
[\\s!-]+
模式。 - Wiktor Stribiżew