正则表达式之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

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值