posts - 6,  comments - 4,  trackbacks - 0
pr("abc".matches(""));
        pr(
"a8729a".replaceAll("\\d""-"));
        Pattern p 
= Pattern.compile("\\w{3}");
        Matcher m 
= p.matcher("dth");
        pr(m.matches());
        
        pr(
"aaaaaaaa".matches("a*"));
        pr(
"aaaa".matches("a+"));
        pr(
"".matches("a*"));
        pr(
"a".matches("a?"));
        pr(
"".matches("a?"));
        pr(
"3235364546757555".matches("\\d{3,100}"));
        pr(
"192245".matches("\\d{1,3}[0-2][0-9][0-9]"));
        pr(
"a".matches("[^fjkl]"));
        pr(
"R".matches("[A-Z&&[RFG]]"));
        pr(
"shivareemmsdo_1018".matches("\\w{6,20}"));
        pr(
"\\".matches("\\\\{0,5}"));
        
        pr(
"hello sir!".matches("^h.*"));
        pr(
"hello sir!".matches(".*r!$"));
        pr(
"hello sir!".matches("^h[a-z]{1,}\\b.*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] abc(简单类)
[^abc] 任何字符,除了 abc(否定)
[a-zA-Z] azAZ,两头的字母包括在内(范围)
[a-d[m-p]] admp[a-dm-p](并集)
[a-z&&[def]] def(交集)
[a-z&&[^bc]] az,除了 bc[ad-z](减去)
[a-z&&[^m-p]] az,而非 mp[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 阅读(213) 评论(3)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: