 pr("abc".matches("
pr("abc".matches(" "));
"));
 pr("a8729a".replaceAll("\\d", "-"));
        pr("a8729a".replaceAll("\\d", "-"));
 Pattern p = Pattern.compile("\\w{3}");
        Pattern p = Pattern.compile("\\w{3}");
 Matcher m = p.matcher("dth");
        Matcher m = p.matcher("dth");
 pr(m.matches());
        pr(m.matches());
 
        
 pr("aaaaaaaa".matches("a*"));
        pr("aaaaaaaa".matches("a*"));
 pr("aaaa".matches("a+"));
        pr("aaaa".matches("a+"));
 pr("".matches("a*"));
        pr("".matches("a*"));
 pr("a".matches("a?"));
        pr("a".matches("a?"));
 pr("".matches("a?"));
        pr("".matches("a?"));
 pr("3235364546757555".matches("\\d{3,100}"));
        pr("3235364546757555".matches("\\d{3,100}"));
 pr("192245".matches("\\d{1,3}[0-2][0-9][0-9]"));
        pr("192245".matches("\\d{1,3}[0-2][0-9][0-9]"));
 pr("a".matches("[^fjkl]"));
        pr("a".matches("[^fjkl]"));
 pr("R".matches("[A-Z&&[RFG]]"));
        pr("R".matches("[A-Z&&[RFG]]"));
 pr("shivareemmsdo_1018".matches("\\w{6,20}"));
        pr("shivareemmsdo_1018".matches("\\w{6,20}"));
 pr("\\".matches("\\\\{0,5}"));
        pr("\\".matches("\\\\{0,5}"));
 
        
 pr("hello sir!".matches("^h.*"));
        pr("hello sir!".matches("^h.*"));
 pr("hello sir!".matches(".*r!$"));
        pr("hello sir!".matches(".*r!$"));
 pr("hello sir!".matches("^h[a-z]{1,}\\b.*r!$"));
        pr("hello sir!".matches("^h[a-z]{1,}\\b.*r!$"));
 pr("hello sir!".matches("^h.*r!$"));
        pr("hello sir!".matches("^h.*r!$"));
输出结果:
---------------------------------
true
a----a
true
true
true
true
true
true
true
true
true
true
true
true
true
true
true
true
----------------------------------
概要:
-------------------------------------------------------------------------------------------------
正则表达式涉及的三个类
java.lang.String;
java.util.regex.Mather;
java.util.regex.Pattern;
* 零次或多次
+ 一此或多次
?零次或一次
在JAVA中“\”需要“\\”来表示
在正则表达式中一个“\”需要“\\\\”来表示
“^”位于[]里意思是取反,位于[]外面意思是输入都开始。$代表结尾。
---------------------------------------------------------------------------------------------------
IP和身份证的例子:
---------------------------------------------------------------------------------------------------
用正则表达式验证ip地址和身份证代码实例如下:
<script language="javascript"> 
function checkIP() 
{ 
obj=document.getElementById("ip").value 
//ip地址
//var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1
\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
//身份证
//var exp=/\b(((?!\d\d\d)\d+|1\d\d|2[0-4]\d|25[0-5])(\b|\.)){4}/
//var exp=/^(\d{15}|\d{17}[x0-9])/
var exp=/^([\d]{15}|[\d]{18}|[\d]{17}[x|X])$/
var reg = obj.match(exp); 
if(reg==null) 
{ 
alert("IP地址不合法!"); 
} 
else 
{ 
alert("IP地址合法!"); 
} 
} 
</script> 
请输入IP地址:<input type="text" id="ip"> 
<input type="button" onclick="checkIP()" value="验证">  
----------------------------------------------------------------------------------------------------
    
        
            | 字符 | 
        
            | x | 字符 x | 
        
            | \\ | 反斜线字符 | 
        
            | \0n | 带有八进制值 0 的字符 n (0 <= n <= 7) | 
        
            | \0nn | 带有八进制值 0 的字符 nn (0 <= n <= 7) | 
        
            | \0mnn | 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7) | 
        
            | \xhh | 带有十六进制值 0x 的字符 hh | 
        
            | \uhhhh | 带有十六进制值 0x 的字符 hhhh | 
        
            | \t | 制表符 ('\u0009') | 
        
            | \n | 新行(换行)符 ('\u000A') | 
        
            | \r | 回车符 ('\u000D') | 
        
            | \f | 换页符 ('\u000C') | 
        
            | \a | 报警 (bell) 符 ('\u0007') | 
        
            | \e | 转义符 ('\u001B') | 
        
            | \cx | 对应于 x 的控制符 | 
        
            |  | 
        
            | 字符类 | 
        
            | [abc] | a、b 或 c(简单类) | 
        
            | [^abc] | 任何字符,除了 a、b 或 c(否定) | 
        
            | [a-zA-Z] | a 到 z 或 A 到 Z,两头的字母包括在内(范围) | 
        
            | [a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](并集) | 
        
            | [a-z&&[def]] | d、e 或 f(交集) | 
                | [a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](减去) | 
            
                | [a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](减去) | 
            
                |  | 
            
                | 预定义字符类 | 
            
                | . | 任何字符(与行结束符可能匹配也可能不匹配) | 
            
                | \d | 数字:[0-9] | 
            
                | \D | 非数字: [^0-9] | 
            
                | \s | 空白字符:[ \t\n\x0B\f\r] | 
            
                | \S | 非空白字符:[^\s] | 
            
                | \w | 单词字符:[a-zA-Z_0-9] | 
            
                | \W | 非单词字符:[^\w] | 
            
                |  | 
            
                | POSIX 字符类(仅 US-ASCII) | 
            
                | \p{Lower} | 小写字母字符:[a-z] | 
            
                | \p{Upper} | 大写字母字符:[A-Z] | 
            
                | \p{ASCII} | 所有 ASCII:[\x00-\x7F] | 
            
                | \p{Alpha} | 字母字符:[\p{Lower}\p{Upper}] | 
            
                | \p{Digit} | 十进制数字:[0-9] | 
            
                | \p{Alnum} | 字母数字字符:[\p{Alpha}\p{Digit}] | 
            
                | \p{Punct} | 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ | 
            
            
                | \p{Graph} | 可见字符:[\p{Alnum}\p{Punct}] | 
            
                | \p{Print} | 可打印字符:[\p{Graph}\x20] | 
            
                | \p{Blank} | 空格或制表符:[ \t] | 
            
                | \p{Cntrl} | 控制字符:[\x00-\x1F\x7F] | 
            
                | \p{XDigit} | 十六进制数字:[0-9a-fA-F] | 
            
                | \p{Space} | 空白字符:[ \t\n\x0B\f\r] | 
        
    
    
    正则表达式的分组:
    
    Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
    String s = "123aa-34345bb-234cc-00";
    Matcher m = p.matcher(s);
    while(m.find()){
        System.out.println(m.group(1));
        System.out.println(m.group(2));
    }
	posted on 2009-04-06 14:52 
shivaree 阅读(235) 
评论(3)  编辑  收藏