Java正则表达式

Posted midiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则表达式相关的知识,希望对你有一定的参考价值。

一.Java中的正则表达式的一些特点

1.java中 \\ 表示正则表达式,所以^\d+(\.\d+)?,可以匹配的实例:"5", "1.5" 和 "2.21"。但在程序中要写成 ^\\d+(\\.\\d+)?

2.普通的反斜线表示为:\\\\

  

 

二.String内建的正则表达式功能

  1.boolean matches(String regex)  检验这个字符串是否匹配给定的regex(正则表达式)

例:

System.out.println( "+911".matches("-|\\+)?\\d+) )    //true

 

  2. String[] split(String regex)                字符串分割

   String[] split(String regex, int limit)

  3.替换

  String replaceFirst(String regex,String replacement)

  String replaceAll(String regex,String replacement)

 

三.Pattern和Matcher

Pattern:模式  Matcher:匹配器(引擎)

习惯用法:

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);

 

得到Matcher对象后,使用Matcher上的方法,我们能够判断各种不同类型的匹配是否成功

boolean matches()
boolean lookingAt()
boolean find()
boolean find(int start)
int start()
int end()

 

四.正则表达式语法

                    字符

 

B 指定字符B
 \xhh 十六进制值为oxhh的字符 
 \uhhhh 十六进制表示为oxhhhh的Unicode字符 
 \t 制表符Tab 
 \n 换行符 
 \r 回车 
 \f 换页 
 \e 转义(Escape) 

字符类

. 任意字符
[abc] 包含a,b和c的任何字符(和a|b|c作用相同)
[^abc] 除了a,b和c之外的任何字符(否定)
[a-zA-Z] 从a到z或从A到Z的任何字符(范围)
[abc[hij]] 任意a,b,c,h,i和j字符(与a|b|c|h|i|j作用相同)(合并)
[a-z&&[hij]] 任意h,i或j(交)
\s 空白符(空格,tab,换行,换页和回车)
\S 非空白符([^\s])
\d 数字[0-9]
\D 非数字[^0-9]
\w 单词字符[a-zA-Z0-9_]
\W 非单词字符[a-zA-Z0-9_]

 

逻辑操作符

XY Y跟在X后面
X|Y X或Y
(X) 捕获组(capturing group) 可以在表达式中用\i引用第i个捕获组

 

边界匹配符

 

^ 一行的起始
$ 一行的结束
\b 词的边界
\B 非词的边界
\G 前一个匹配的结束

 

量词

贪婪模式 饥饿模式 独占模式  
X? X?? X?+ 匹配0或1次
X* X*? X*+ 匹配0或多次
X+ X+? X++ 匹配1或多次
X{n} X{n}? X{n}+ 匹配n次
X{n,} X{n,}? X{n,}+ 匹配最少n次
X{n, m} X{n, m}? X{n, m}+ 匹配最少n次,最多m次

 


以上是关于Java正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串替换

text 正则表达式片段

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

java正则表达式去除html标签

循环通过 python 正则表达式匹配