正则表达式
来源:互联网 发布:查手机mac地址 编辑:程序博客网 时间:2024/06/06 15:41
1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
2.用途:
- 字符串匹配(字符匹配)
- 字符串查找
- 字符串替换
- 字符串分割
例如:
- 从网页中揪出email地址
- IP地址是否正确
- 从网页中揪出链接
3.java中处理正则表达式的类:
- java.lang.String
- java.util.regex.Pattern:模式类:字符串要被匹配的这么一个模式,该模式本身已经被编译过,使用的话效率要高很多。
- java.util.regex.Matcher:匹配类:这个模式匹配某个字符串所产生的结果,这个结果可能会有很多个。
4. 各字符含义
. 任何字符(1个)
? ?前面的字符匹配0或者1次
* *前面的字符匹配0或者多次
+ +前面的字符匹配1或者多次
a? a一次或一次也没有
a* a零次或多次
a+ a一次或多次
a{n} a恰好 n 次
a{n,} a至少n次
a{n,m} a至少n次,但是不超过m次
1、java.util.regex 包主要包括以下三个类:
- Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
- Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
- PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
2、matches()用法
java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。
都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")
String类的方法:
boolean b = "abc".matches("[a-z]{3}"
System.out.println(b);
Pattern类中的方法:
boolean b = Pattern.matches("[a-z]{3}","abc");
System.out.println(b);
Matcher类中的方法:
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("acc");
boolean b =m.matches()
System.out.println(b);
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- Android如何客制化adb shell进去后显示shell@xxxx的标识
- Android RecyclerView 滚动位置判断
- 【读书笔记】TCP/IP网络编程 第14章 多播、广播
- 125. Valid Palindrome
- Windows 10 安装Spark2.1
- 正则表达式
- 【解决方案】子div用了float浮动之后,如何撑开父元素,让父元素div自动适应高度的问题
- eclipse 查看原始类出现The jar file rt.jar has no source attachment解决方法
- A Research Problem UVA
- 2618: [Cqoi2006]凸多边形
- Selenium element is not attached to the page document
- 正向代理和反向代理
- 以太坊智能合约ABI(Ethereum Contract ABI)
- jq回车提交事件