正则表达式
来源:互联网 发布:windows vista没人用 编辑:程序博客网 时间:2024/05/16 11:28
在java中matches中用到很多。
范例:
package com.haizhu;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegExp {public static void main(String[] args) {p("abc - ...","abc".matches("..."));// 字符串匹配,有三个字符,用三个点匹配,结果是“true”p("a8729a - replace ","a8729a".replaceAll("\\d", "-"));// 使用正则表达式,将所有的数字替换为“-”//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 认识 Pattern &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Pattern p = Pattern.compile("[a-z]{3}");// 定义一个匹配模板,预处理,效率高Matcher m = p.matcher("fgh");p("Pattern.compile ",m.matches());// 上面这三句可以合成下面一句,但是上面的好处还是有很多的:效率,功能 ,等等p("改写Pattern.compile ","fhg".matches("[a-z]{3}"));//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 认识 “ . 、 * 、+ ” &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p("a - .","a".matches("."));p("a - a","a".matches("a"));// 注意,不一定全是正则匹配,字符跟字符也可以p("aaa - a?","aaa".matches("a?"));// 0 或 1 个p("aaa - a*","aaa".matches("a*"));// 0 或 N 个p("aaa - a+","aaa".matches("a+"));// 1 或 N 个p(" - a?","".matches("a?"));p(" - a*","".matches("a*"));p(" - a+","".matches("a+"));p("145234523452345 - \\d{3,}","145234523452345".matches("\\d{3,}"));// 出现一个数字,至少 3 次,没有上限p("145234523452345 - \\d{3,100}","145234523452345".matches("\\d{3,100}"));// 出现一个数字,至少 3 次,不多于 100 次// 使用的是 “.” 连接p("192.168.0.aaa - \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}","192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));// 注意字母[a-z]前面没有 “\\”p("192.168.0.aaa - \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.[a-z]{3}","192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.[a-z]{3}"));// 更加精确的数组匹配,确定数字的范围p("192 - ","192".matches("[0-2][0-9][0-9]"));// 中括号只匹配一个字符,要想匹配多个,使用{}//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 范围 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p("a - [abc]","a".matches("[abc]"));p("a - [^abc]","a".matches("[^abc]"));// 使用 “^” 表示不再这个范围内p("字母和数字","a".matches("[0-9a-zA-Z]"));// 数字,大写,小写都可以p("a - [a-zA-Z]","a".matches("[a-zA-Z]"));// 大写,小写都可以(直接写一起,不用分割)p("a - [a-z]|[A-Z]","a".matches("[a-z]|[A-Z]"));// 同上p("a - [a-z[A-Z]]","a".matches("[a-z[A-Z]]"));// 同上p("A - [A-Z&&[ABC]]","A".matches("[A-Z&&[ABC]]"));// A-Z 并且 属于ABC ,也就是交集的意思//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 认识 \s \w \d &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p("","");//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 认识边界 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p("hello sir - ^h.*","hello sir".matches("^h.*"));p("hello sir - .*ir$","hello sir".matches(".*ir$"));p("hello sir - ^h.*ir$","hello sir".matches("^h.*ir$"));//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 认识分组 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&String s2 = "123aa-2345-bb-668cc-00";Pattern p2 = Pattern.compile("\\d{3,5}[a-z]{2}");Matcher m2 = p2.matcher(s2);while(m2.find()){p("没有添加括号时",m2.group());}String s3 = "123aa-2345-bb-668cc-00";Pattern p3 = Pattern.compile("(\\d{3,5})([a-z]{2})");Matcher m3 = p3.matcher(s3);while(m3.find()){p("这个就是find的结果",m3.group(0));p("只打印数字部分",m3.group(1));p("只打印字母部分",m3.group(2));}}public static void p(String s,Object o){System.out.println(s+":"+o);}}
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 网狐、6878、名字修改&图片文字路径【第四次更新】
- IE6/7下移除button、input 默认边框和去掉焦点线
- linux中使用hashmap
- 微信公众平台消息接口-java
- 带有验证码的网站的注册功能
- 正则表达式
- 存储系统 - IOPS与带宽的关系
- 抓包工具wireshark基本介绍和TCP三次握手
- 一起学WCF【4】
- 步进电机
- V4L2 视频采集技术
- 图像透明拷贝--不同方法的效率比较
- HDOJ 2059
- 应对产品多入口,多版本控制的工厂设计模式使用