城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

正则表达式总结

Posted on 2008-12-07 19:50 sailor 阅读(183) 评论(0)  编辑  收藏 所属分类: java

1、 

在表达式中有特殊意义,需要添加 """ 才能匹配该字符本身的字符汇总

字符

说明

^

匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 ""^"

$

匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 ""$"

( )

标记一个子表达式的开始和结束位置。要匹配小括号,请使用 ""(" 和 "")"

[ ]

用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 ""[" 和 ""]"

{ }

修饰匹配次数的符号。要匹配大括号,请使用 ""{" 和 ""}"

.

匹配除了换行符("n)以外的任意一个字符。要匹配小数点本身,请使用 ""."

?

修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 ""?"

+

修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 ""+"

*

修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 ""*"

|

左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 ""|"


比较{? + *}用法

 1public class DataMatcher {
 2    public static void main(String[] args) {
 3        String input = "aab ab acb ";
 4        String regex = "e.+?d";
 5        String regex1 = "a*b";
 6        String regex2 = "a+b";
 7        String regex3 = "a?b";
 8        
 9        Pattern p = Pattern.compile(regex1);
10        Matcher m = p.matcher(input);
11                
12        while(m.find()){
13            System.out.println("match: '" + m.group() + "' start: " + m.start() + " end: " + m.end());
14        }

15    }

16}


regex1 result:

1match: 'aab' start: 0 end: 3
2match: 'ab' start: 4 end: 6
3match: 'b' start: 9 end: 10



regex2 result

1match: 'aab' start: 0 end: 3
2match: 'ab' start: 4 end: 6



regex3 result

1match: 'ab' start: 1 end: 3
2match: 'ab' start: 4 end: 6
3match: 'b' start: 9 end: 10



{.}的用法

1String regex = "a.*?b";
2String input = "eaab ab eb acb acsd df ad";
3

result:
1match: 'aab' start: 1 end: 4
2match: 'ab' start: 5 end: 7
3match: 'acb' start: 11 end: 14


{|}的用法
1String input = "eaab ab eb acb acsd df ad";
2String regex = "(a.*?)(b|d)";

result:
1match: 'aab' start: 1 end: 4
2match: 'ab' start: 5 end: 7
3match: 'acb' start: 11 end: 14
4match: 'acsd' start: 15 end: 19
5match: 'ad' start: 23 end: 25

{[]}用法
1String input = "a b c da ab";
2String regex = "[ab]";

result:
1match: 'a' start: 0 end: 1
2match: 'b' start: 2 end: 3
3match: 'a' start: 7 end: 8
4match: 'a' start: 9 end: 10
5match: 'b' start: 10 end: 11


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


网站导航: