java regex用破折号替换特殊字符和空格

时间:2015-01-25 23:44:40

标签: java regex

我有以下字符串,

String model = "Town & Country";

我想用破折号替换特殊字符和空格以及小写它以获得干净的网址。

实施例

"town-country"

我尝试过以下代码。

"Town & Country".replaceAll("[^A-Za-z0-9]", "-").toLowerCase();

但我最终得到了以下输出。

town---country

有人可以帮助我使用正则表达式以使其正常工作吗?如果有多个空格,我想把它减少到一个空格,用短划线代替。如果有一个很好的java库就是为了做到这一点,我会对它感兴趣,但是我不想使用它。

1 个答案:

答案 0 :(得分:7)

您已关闭,您只需要在表达式中添加一个量词,以允许它匹配多个字符。

/[^A-Za-z0-9]+/

(注意最后的+。)

所以,你的代码应该是这样的:

"Town & Country".replaceAll("[^A-Za-z0-9]+", "-").toLowerCase();

Live example on regexr