正则表达式之Pattern

Pattern之正则表达式

pattern是java.util.regex(一个用正则表达式所定制的模式来对字符串进行匹配工作的类库包)中的一个类。一个pattern是一个正则表达式编译后的模式。

一、pattern的方法如下:

1.static Pattern compile(String regex)
将给定的正则表达式编译并赋予Pattern类。
2.static Pattern compile(String regex,int flag)
同上,增加了一个flag参数,可选的flag参数有CASE_INSENSITIVE、MULTILINE、DOTALL、UNICODE_CASE、CANON_EQ
Pattern.CASE_INSENSITIVE:启用不区分大小写的匹配。
Pattern.MULTILINE:启动多行模式。默认情况下^和$匹配输入序列的开始和结束。此标志使模式仅逐行匹配或输入序列的末尾。
Pattern.DOTALL:允许在模式中有空格和注释,忽略以#开头的空格和嵌入的注释,直到行的结尾。
Pattern.UNICODE_CASE:启用支持Unicode的大小写。与CASE_INSENSITIVE标志一起,可以根据Unicode标准执行不区分大小写。
Pattern.CANON_EQ:启用规范等效。

flag参数是一位掩码,并在Pattern类中定义为int常量。

Flag 描述
CASE_INSENSITIVE 启用不区分大小写的匹配。
MULTILINE 启动多行模式。默认情况下^和$匹配输入序列的开始和结束。此标志使模式仅逐行匹配或输入序列的末尾。
DOTALL 允许在模式中有空格和注释,忽略以#开头的空格和嵌入的注释,直到行的结尾。
UNICODE_CASE 启用支持Unicode的大小写。与CASE_INSENSITIVE标志一起,可以根据Unicode标准执行不区分大小写。
CANON_EQ 启用规范等效。

二、正则表达式的组成规则

规则字符在java.util.regex.Pattern类中,常见的组成规则
1.字符
x表示字符x,例如‘a’表示字符a
\\表示反斜杠字符
\n表示新行(换行)
\r表示回车符

2.字符类
[a,b,c]表示a、c、d简单类
[^abc]表示任何字符,除了a、b或c(否定)

3.预定义字符类
**.**表示任何字符
\d 表示数字:[0,9]
\D表示非数字:[^0.9]
\w表示单词字符:[a-zA-Z_0-9]
\W表示非单词字符

4.边界匹配器
^表示行的开头
$表示行的结尾
\b表示单词边界,就是不是单词字符的地方。举例:hello world?haha;xixi

5.数量词

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

三、正则表达式的应用

1.判断功能 public boolean matches(String regex)、public static boolean matches(String regex, CharSequence input)
编译给定的正则表达式并将给定的内容进行匹配,调用此方法便捷方式:Pattern.matches(regex,input),与表达式Pattern.compile(regex).matcher(input).matches();的处理结果是一样的。
2.分割功能 public String[] split(String regex)
3.替换功能 public Sting replaceAll(String regex,String replacement)
3.获取功能 Pattern和Matcher类的使用

四、 应用文献
[1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference

你可能感兴趣的:(Java基础)