Chinaunix首页 | 论坛 | 博客
  • 博客访问: 284808
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-27 08:37
个人简介

从linux了解世界

文章分类
文章存档

2017年(5)

2016年(51)

2015年(2)

我的朋友

分类: Java

2016-07-30 14:51:06

正则表达式:用于操作字符串的一个规则
String类中有一个方法match(string)返回boolean
预定义字符(所有预定义字符没有加上数量词之前都代表一个字符):
.任意字符(与行结束符不一定匹配)
\d 数字[0-9]
\D 非数字[^0-9]
\s 空白字符[ \t\n\x0b\f\r]
\S非空白字符[^\S]
\w 单词字符[a-zA-z_0-9]a到z的大小写字母,0到9的数字和下划线
\W 非单词字符

数量词:
?最多一次
*零次或多次
+一次或多次
{n}正好n次
{n,}最少n次
{n,m}n到m次

范围词(没有数量词都代表一个字符):
[abc]abc中一个字符
[^abc]除了abc的一个字符
[a-zA-Z]a-z或A-Z中的一个字符
[a-z[A-Z]]同上
[a-z&&[xyz]]交集xyz中的一个字符
(123|345)代表123或者345。邮箱正则:
”[a-zA-Z1-9]\\w{5,17}@[a-zA-Z1-9] {2,}(\\.(net|com|cn)){1,2}”

边界匹配器
^       行的开头
$       行的结尾
\b     单词边界(代表单词的开始或者结束部分,不匹配任何字符)
\B     非单词边界
\A     输入的开头
\G     上一个匹配的结尾
\Z     输入的结尾,仅用于最后的结束符(如果有的话)
\z      输入的结尾

正则表达式对字符串的操作主要有:匹配、切割、替换可以用string的方法,查找只能用正则类pattern对象的方法。
匹配:”15201316507”.matches(“1[358]\\d{9}”)返回true
切割:“臭熊宝”.split(“\\s+”);返回string[]={“臭”,“熊”,“宝”}
如果正则的内容需要被复用,需要对正则的内容进行分组,用()分组,组号从1开始(\1)
“一一一个个个臭的的熊的的宝”.split(“(.)\\1+”);返回string[]={“臭”,“熊”,“宝”}
((a)(b(c)))从左往右看(算组号
替换:”我我要要学学”.replaceall(“(.)\\1”,”$1”)在replaceall中用&引用

查找:用pattern类的典型调用顺序:创建pattern对象,产生matcher对象,用matcher对象得到最终信息(主要用matcher的find、group方法)

Pattern p=pattern.compile(“正则表达式”);//产生符合正则表达式的pattern对象
Matcher m=p.matcher(“要处理的字符串”);//使用pattern对象处理字符串产生matcher对象
While(m.find());//返回boolean
{
         String tmp=m.group();//获取结果调用group之前一定要先用find匹配符合规则的字符串,否则报错
}
阅读(1402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~