首页 > 其他 > 详细

正则表达式(2)

时间:2015-11-24 17:21:46      阅读:320      评论:0      收藏:0      [点我收藏+]

1、简单的MetaCharacter

X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n
X{n,} X,至少 n
X{n,m} X,至少 n 次,但是不超过 m

  “. * + ?” 在正则表达式中用特定的意义,灵活使用可以方便表示不同的模式,具体内容可以参见 API 文档的 Pattern 类的内容,在这里举一个例子来表示:

 1  p("a".matches(".")); //true
 2  p("aa".matches("aa")); //true
 3  p("aaaa".matches("a*")); //true
 4  p("aaaa".matches("a+")); //true
 5  p("".matches("a*")); //true
 6  p("".matches("a?")); //true
 7  p("aaaa".matches("a?")); //false
 8  p("a".matches("a?")); //true
 9  p("2345236426".matches("\\d{3,10}")); //true
10  p("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")); //false
11  p("192".matches("[0-2][0-9][0-9]"));  //true

2、范围

  “[ ]”,其中中括号里面的内容表示单个字符的范围,里面可以嵌套中括号。

1 p("a".matches("[abc]")); //true
2 p("a".matches("[^abc]")); //false
3 p("A".matches("[a-zA-Z]")); //true
4 p("A".matches("[a-z]|[A-Z]")); //true
5 p("A".matches("[a-z[A-Z]]")); //true
6 p("R".matches("[A-Z && [RGB]]")); //true

  以下是 java 的预定义字符类:

. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

 举例:

1 p(" \n\r\t".matches("\\s{4}"));  //true
2 p(" ".matches("\\S"));  //false
3 p("a_8".matches("\\w{3}"));  //true
4 p("abas123&*^".matches("[a-z]{1,4}\\d+[&*^%]+"));  //true
5 p("\\".matches("\\\\"));  //true

3、边界匹配器

^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾

举例:

1 p("hello sir".matches("^h.*")); //true
2 p("hello sir".matches(".*ir$")); //true
3 p("hello sir".matches("^h[a-z]{1,3}o\\b.*")); //true
4 //空白行处理
5 p(" \n".matches("^[\\s&&[^\\n]]*\\n")); //true

 

正则表达式(2)

原文:http://www.cnblogs.com/skyke/p/4992201.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!