快速掌握正则表达式,掌握常用的就ok
2016-04-06 16:23
204 查看
正则表达式其实只需要会用一些常用的的字符匹配规则,就能够写出大多数的字符匹配规则,下面就直接介绍一下常用正则表达式的匹配: .--匹配任意一个字符 X*--表示字符X出现了0次或者多次 X+--表示字符X出现了1次或者多次 X?--表示字符X出现0次或者1次
// .表示任意一个字符(a字符是否匹配.) System.out.println("a".matches("."));//true // x*表示x出现0次或者多次(,a字符是否匹配a*) System.out.println("a".matches("a*"));//true // x+表示x出现1次或者多次(aaaa是否匹配a+) System.out.println("aaaa".matches("a+"));//true // x?表示x出现0次或者1次(a是否匹配a?) System.out.println("a".matches("a?"));//true
[abc]--表示字符a,b,c中的任意一个,[]里面无论有多少内容,都代表匹配的是一个字符 [^abc]--任何字符,除了 a、b 或 c(否定), []里面有^代表取反 [a-z&&[def]]--d、e 或 f(交集)//(&&表示取交集) [a-z|A-Z]---a 到 z 或 A 到 Z中的一个(并集)//(|代表取并集,在[]内可以省略,像下面那样) 也可以这样表示[a-zA-Z]或者[[a-z][A-Z]]或者[a-z[A-Z]]
//是否取反 System.out.println("a".matches("[abc]"));//true System.out.println("a".matches("[^abc]"));//false //并集,一个意思 System.out.println("a".matches("[a-zA-Z]"));//true System.out.println("B".matches("[a-z|A-Z]"));//true System.out.println("a".matches("[a-z[A-Z]]"));//true System.out.println("a".matches("[a-z]|[A-Z]"));//true //交集 System.out.println("G".matches("[A-Z&&[RFG]]"));//true
\d--表示的是[0-9]中的一个数字 \s--表示空白字符(比如制表符,换行符.回车符等) \w--表示单词字符[0-9A-Za-z_]中的一个 \\--表示\ 补充一下 在java中\不代表任何转义字符,如果想要表示反斜杠 在java中需要在反斜杠前面加一个\转义表示一个"\" 在正则表达式中含有"\"的时候,需要加一个\再次转义,为了区分java
System.out.println("1".matches("\\d"));//true System.out.println(" ".matches("\\s"));//true System.out.println("_".matches("\\w"));//true //java中书写的时候\\代表一个\,在正则表达式中\\才匹配一个\, // 在正则表达式中含有"\"的时候,需要加一个\再次转义,为了区分java //这里正则表达式中含有两个\,所以要转义2次 System.out.println("\\".matches("\\\\"));//true
X{n}--表示字符X出现n次 X{n,}--表示字符X至少出现n次 X{n,m}--表示字符X最少出现n次,最多出现m次
// 数字出现5次 System.out.println("12345".matches("\\d{5}"));//true // 数字至少出现5次 System.out.println("123456".matches("\\d{5,}"));//true // 数字至少出现5次,最多出现7次 System.out.println("1234567".matches("\\d{5,7}"));//ture
^--表示行的开头 $--表示行的结尾
// ^表示一行的开头,只用于开头,注意区分[]内的^ System.out.println("hello sir".matches("^h.*"));//true // $表示一行的结尾,只用于结尾 System.out.println("hello sir".matches(".*ir$"));//true
最后补充一下,上面我们一使用String类中matches方法,然而正则表达式还是要使用下面这种方式来匹配比较好,效率更高一些。
Pattern p = Pattern.compile("a*b");// 先编译一下正则表达式的字符串,之后产生的一个模式 Matcher m = p.matcher("aaaaab");//这种模式匹配一下字符串之后产生的结果 boolean b = m.matches();//是否匹配
相关文章推荐
- msql 正则表达式
- 正则表达式
- Mootools 1.2教程 正则表达式
- 批处理FINDSTR正则表达式用法实例分析
- vbs正则表达式代码
- C#正则表达式Regex类的常用匹配
- C#中利用正则表达式将人民币金额转换为大写汉字
- C#使用正则表达式实现首字母转大写的方法
- php中看实例学正则表达式
- PHP正则表达式之定界符和原子介绍
- PHP下常用正则表达式整理
- 批处理 正则表达式(findstr) 整理
- 详解C#正则表达式Regex常用匹配
- C#正则表达式的6个简单例子
- JavaScript类型系统之正则表达式
- 详解JS正则replace的使用方法
- javascript中的正则表达式使用指南
- C#中的正则表达式介绍
- 学习正则帮手笨狼正则练习器