【问题标题】:java regex replace special characters and spaces with dashjava正则表达式用破折号替换特殊字符和空格
【发布时间】:2015-01-26 07:47:35
【问题描述】:

我有以下字符串,

String model = "Town & Country";

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

例子

"town-country"

我已经尝试了以下代码。

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

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

town---country

有人可以帮助我使用正则表达式以使其正常工作吗?如果有多个空格,我想将其减少为由破折号替换的单个空格。如果有一个很好的 java 库可以做到这一点,我会对它感兴趣,但是我不想使用加号。

【问题讨论】:

    标签: java regex


    【解决方案1】:

    你已经接近了,你只需要在表达式中添加一个量词,让它匹配多个字符。

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

    (注意末尾的+。)

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

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

    Live example on regexr

    【讨论】:

    • 非常感谢,我不知道量词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    相关资源
    最近更新 更多