我有以下字符串,
String model = "Town & Country";
我想用破折号替换特殊字符和空格以及小写它以获得干净的网址。
实施例
"town-country"
我尝试过以下代码。
"Town & Country".replaceAll("[^A-Za-z0-9]", "-").toLowerCase();
但我最终得到了以下输出。
town---country
有人可以帮助我使用正则表达式以使其正常工作吗?如果有多个空格,我想把它减少到一个空格,用短划线代替。如果有一个很好的java库就是为了做到这一点,我会对它感兴趣,但是我不想使用它。
答案 0 :(得分:7)
您已关闭,您只需要在表达式中添加一个量词,以允许它匹配多个字符。
/[^A-Za-z0-9]+/
(注意最后的+
。)
所以,你的代码应该是这样的:
"Town & Country".replaceAll("[^A-Za-z0-9]+", "-").toLowerCase();