String regex="^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$";
表示“英文,阿拉伯,汉字,下划线,且下划线不能在开头或者结尾”
(?!_)(?!._$)是不能以下划线开头,结尾的意思
大家能不能详细说一下为什么?
"?!"表示什么意思?
"?!."表示什么意思?谢谢

解决方案 »

  1.   

    java.util.regex.Pattern的api中有对正则的解释:
    特殊构造(非捕获) 
    (?:X) X,作为非捕获组 
    (?idmsux-idmsux)  Nothing,但是将匹配标志由 on 转为 off 
    (?idmsux-idmsux:X)   X,作为带有给定标志 on - off 的非捕获组 
    (?=X) X,通过零宽度的正 lookahead 
    (?!X) X,通过零宽度的负 lookahead 
    (?<=X) X,通过零宽度的正 lookbehind 
    (?<!X) X,通过零宽度的负 lookbehind 
    (?>X) X,作为独立的非捕获组 
    最好自己再到api里看下,LZ可以:自己反复试验来体会这几句的意思,也可以:在网上搜下相关名词的解释再对上面进行理解!
      

  2.   

    http://deerchao.net/tutorials/regex/regex.htm
    入门看这个