我想删除多次出现的特殊字符,例如" "
, "-"
, "!"
, "_"
从我的 java 字符串中通过一个下划线"_"
。
我试过
replaceAll("([\\s\\-\\!])\\1+","_")
它似乎用下划线替换连续的相同类型的特殊字符,但否则不起作用。
例如:
Hello!!! World
becomes
Hello__World
(2个下划线。)但是应该是Hello_World
.
也适用于类似的情况Hello - World
它失败。
我还尝试使用正则表达式并制作了一个正则表达式,例如
replaceAll("([^a-zA-Z0-9])\\1+","_")
但这仍然没有帮助。我怎样才能实现它?
注意\1
是一个反向引用contents与第一个捕获组匹配。要实际匹配字符类中的一个或多个任意字符,只需使用+
量词:
[\\s!-]+
So, use
str = str.replaceAll("[\\s!-]+","_");
See IDEONE演示 http://ideone.com/gZBVo8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)