java学习(一)----正则表达式
来源:互联网 发布:java redis 获取list 编辑:程序博客网 时间:2024/05/18 14:43
正则表达式:是一种规则。用来匹配当前输入的字符串是否符合特定的标准。例如验证qq号,邮箱,设置密码等。
正则表达式书写:
1、字符类:例如[abc],[ ]代表单个字符
用法:
string regex = "[abc]";System.out.println("a".matches(regex));
程序返回结果为true;
解释:[abc]为如果匹配的字符串中有abc三个字符则返回true,否则返回false。matches为用来匹配的方法。
其余字符类:(1)^[abc]除abc之外的任意字符
(2)[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
(3)[0-9] 0到9的字符都包括
2、预定义的字符类(这里的类java中已经规定好了,直接用就好了),用法类似
(1). 任何字符。
(2) \d 数字:[0-9]
(3) \w 单词字符:[a-zA-Z_0-9]
3、数量词
(1)X? X,一次或一次也没有
(2) X* X,零次或多次
(3)X+ X,一次或多次
(4) X{n} X,恰好 n 次
(5) X{n,} X,至少 n 次
(6) X{n,m} X,至少 n 次,但是不超过 m 次
用法相同:
例如:
String regex = "[abc]?";System.out.println("a".matches(regex));System.out.println("d".matches(regex));
运行结果:true,false,不在多说。
4、split方法(分割)
String s= "我.爱.你";Sting[] arr = s.split("\\.");(这里因为.带表得是任意字符,所以要加\\,转义字符,代表.,如果是其他的字符直接加就好)
遍历数组之后得到的结果为:
我
爱
你
5、替换功能(replaceAll方法的使用)
String s = "wo1ai2ni"; String regex = "\\d"; // \\d代表任意数字System.out.println(s.replaceAll(regex,"")); //replaceAll方法有两个参数,第一个为正则字符串中匹配的值,这里指的是任意的数字,第二个为替换的值,这里为空
结果:woaini
6、Pattern和Matcher的概述
用法:
Pattern p = Pattern.compile("a*b"); //任意个a和一个b,获取pMatcher m = p.matcher("aaaaab"); //创建匹配器,里面有个字符串作为参数,看这个字符串是否能用上面的正则表达式匹配上boolean b = m.matches(); //如果匹配成功,则返回true,否则返回false
简单的例子:需求:获取字符串中的手机号码,给定字符串“我的手机号是15822536565,他的手机号是14568895465”
String s = "我的手机号是15632323333,他的手机号是14568895465";String regex = "1[34578]\\d{9}"; \\第一个1代表手机最开始的位为1,[34578]代表第二位的数字只能为这几个数字,如果是其余数字我们认为不符合手机号的标准,\\d{9}代表剩余的为任意数字,一共9位任意数字。总共为11位。Pattern p = Pattern.compile(regex);Matcher m = p.matcher(s); while(m.find()) //find方法为在制定字符串中找符合要求的字符串,这里找的是字符串System.out.println(m.group); //返回找到的字符串
结果:15632323333
14568895465
阅读全文
1 0
- java正则表达式学习笔记(一)
- Java正则表达式的学习(一)
- java学习(一)----正则表达式
- java 正则表达式学习一
- 正则表达式学习(一)
- 学习正则表达式(一)
- 正则表达式学习(一)
- 正则表达式学习(一)
- 正则表达式学习(一)
- 正则表达式学习 (一)
- 学习正则表达式(一)
- 学习正则表达式(一)
- 正则表达式学习(一)
- 正则表达式学习(一)
- 正则表达式学习(一)
- Java正则表达式(一)
- JAVA正则表达式(一)
- Java正则表达式(一)
- Linux下的exec函数
- HDU5892Resident Evil(二维树状数组+状态压缩)
- linux 查看文件系统类型
- 文章标题
- 自定义属性
- java学习(一)----正则表达式
- Mysql主从复制
- 编辑距离的一些理解
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十二)Configure user account properties with Office 365 PowerShel
- kibana3 from source
- 数据结构——二叉树的基本操作
- MHA中send_report脚本(使用Email::Simple模块)
- 【Shader】热扭曲实现刀光特效
- Lua与OC相互调用