我需要在这样的方法中验证a。
validateFileName(Editable s) {
String filtered_str = s.toString();
if (filtered_str.matches(".*[regexp].*")) {
filtered_str = filtered_str.replaceAll("[regxp]", "");
s.clear();
s.append(filtered_str);}我应该使用哪些正则表达式来排除所有非法字符和空格?我使用的是linux
发布于 2012-04-26 05:44:26
如果您的想法只是排除非法字符和空格字符,您可以使用类似于:
'^[^*&%\s]+$'
其中您可以将任何“非法”字符添加到字符列表中(在本例中,它忽略*、&、%和空格) \s是空格![]中的^是正则表达式语法的一部分,它的意思是: do not匹配[]中的任何字符。
发布于 2014-01-23 02:11:44
如果您使用的是POSIX兼容的操作系统,则文件名中的合法字符为a-z、A-Z、0-9、句点、下划线和连字符。因此,匹配“非法”字符的正则表达式将是
[^-_.A-Za-z0-9]
附录:这是如果你想要一个完全可移植的文件名。正如我在下面Josip的评论中更正的那样,POSIX本身实际上允许更多的字符。
https://stackoverflow.com/questions/10324228
复制相似问题