2015-06-24 31 views
1

id喜欢做以下规则:如何在java中编写更复杂的正则表达式?

不以空格开始“”,不超过一个“。” ,不是以“开始”。不以“”结尾。“不是?/\:在文件中。

public static void Invalid(String[] filename){ 
for(String s: filename){  
    String u = s; 
    try { 
     u = new String(s.getBytes(), "UTF-8"); 
     System.out.println(u); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    u=u.replaceAll("[.$]", " ");//.{2,}\\? 
    u = u.replaceAll("\\s+", "_"); 
    System.out.println(s + " = " + u); 
} 
} 

主只是简单:

String[] name={"some?thing..txt."}; 
    Invalid(name); 

输出:

some?thing..txt. 
some?thing..txt. = some_thing_txt_ 

我该怎么办呢?如果你想允许空字符串,在末尾添加|^$

+0

你只是想要验证一个文件名,或者实际上改变一个文件名以符合你的规则? – jrahhali

+0

更改为_例如 – kokoko

回答

1

您可以使用此模式来验证文件名:

^[^?/\\\\;: .][^?/\\\\;:.]*(?:\\.[^?/\\\\;:.]+)?$ 

注意。

不知道你确实想用无效的文件名做什么。

+0

我只是想将无效更改为有效,因此现在用_字符替换 – kokoko