正则表达式:用连字符替换空格并仅允许a-z

时间:2014-02-06 21:56:08

标签: java regex

我在这里正在努力争取正则表达式。

如何用连字符替换空格并仅允许a-z符号?

public String filterSpeciesName(String species) {
    return species.replaceAll("[^a-zA-Z]", "").toLowerCase();
}

一个例子是

input string "Bar''r$ack Put1in"
output string "barrack-putin"

2 个答案:

答案 0 :(得分:2)

return species.trim().replaceAll("\\s", "-").replaceAll("[^a-zA-Z-]", "").toLowerCase();

答案 1 :(得分:0)

要用连字符替换任何空格字符,请使用String#replaceAll("\\s", "-")

然后,如果您只想删除不是a-z的字符,请使用replaceAll("[^a-zA-Z-]", ""),假设您不想删除新添加的连字符:)

但我宁愿推荐你,也许只是:

    如果species.replaceAll("\\s", "-")^[a-zA-Z-]+$匹配,则
  • 匹配 如果不是这样,
  • 抛出 Exception
  • 返回格式化的值,否则