一、匹配字符串

String类的matchs方法用的是正则表达式匹配,matchs方法与equals类似。

"javac".matchs("javac");

"javac".equals("javac");

结果都为true。

match方法更强大,不仅能匹配固定字符串,还能匹配具有相同规律的的字符串。

”javac jar".macths("javac.*");

”javac jar javac".macths("javac.*");

”javac jar java".macths("javac.*");

字符串.*匹配任何0个或者多个字符。

二、正则表达式的语法

正则表达式由字面字符和特殊字符组成。特殊字符(、)、[和]。

注意:反斜杠是一个特殊字符,在字符串中开始转义序列。所以java中需要使用\\d来代表\d。

提醒:空白字符是' ', '\t', '\n', '\r', 或者'\f'。

常用的正则表达式

正则表达式 匹配 事例
x 指定字符X javac匹配javac
. 任意单个字符 javac匹配ja..c
(ab|cd) ab或cd on匹配o(a|n)
[abc] a、b或者c pen匹配pe[abn]
[^abc} 除开a、b和cd任意字符 sun匹配[^abc]un
[a-z] a到z god匹配go[a-d]
[^a-z] 除开a到z的任意字符 god匹配go[a-c]
[a-e[m-p]] a到e或者m到p sun匹配su[a-b[i-o]]
[a-e&&[m-p]] a到e或者m到p sun匹配su[a-o&&[i-o]]
\d 数字字符,等同于[0-9] java8匹配"java[\\d]"
\D 非数字字符,等同于[^0-9] java匹配"jav[\\D]"
\w 单词字符,等同于[a-zA-Z0-9_] java匹配"jav\\w"
\W 非单词字符,等同于[^a-zA-Z0-9_] java8匹配"java\\W"
\s 空白字符,等同于[\t\n\r\f] java jar匹配"java\sjar"
\S 非空白字符,等同于[^\t\n\r\f] java匹配"jav\S"
p* 模式p的0或多次出现 abab匹配"(ab)*"
p+ 模式p的1或多次出现 aba匹配"a+ba"
p{n} 模式p的n次出现 abab不匹配".{2}"
p{n, } 模式p的至少n次出现 abab匹配".{2,}"
p{n,m} 模式p出现的次数大于等于n且小于等于m ababa不匹配".{2,4}"
p? 模式p的0或1次出现 abab不匹配".?"

注意:单词字符是任意的字母、数字或者下划线字符。

\w等同于[a-z[A-Z][0-9]_]或者化简为[a-zA-Z0-9_]。

\W等同于[^a-zA-Z0-9_]。

以斜杠开头的正则表达式必须加中括号[]。

例如:"11-22-33".matchs("[\\w]{2}-[\\w]{2}-[\\w]{2}");          结果为true

"111-22-33".matchs("[\\w]{2}-[\\w]{2}-[\\w]{2}");          结果为false

          量词符*、+、?、{n}、{n, }、{n,m}
          *等同于{0,},+等同于{1,},?等同于{0,2}
           警告:不要在重复量词符中使用空白,例如Z{2,4}不能在逗号后面有空白符的Z{2, 4}。
   
          可以使用括号对模式进行分组。例如:(ab){3}匹配ababab,但是ab{3}匹配abbb。
          小括号符和中括号符都是特殊字符,如果小括号符要表示其字面意思,则必须写成"\\(","\\)"。
          例如:"(xxx)xxx-xxx".matchs("\\(x{3}\\)x{3}-x{3}")

java之正则表达式相关推荐

  1. java正则截取xml节点_实例讲述Java使用正则表达式截取重复出现的XML字符串功能...

    Java使用正则表达式截取重复出现的XML字符串功能示例 本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能.分享给大家供大家参考,具体如下: public static void m ...

  2. java 自定义正则表达式_java中正则表达式实例详解

    Java中正则表达式运用实例(参看java中正则表达式运用详解): 测试代码 package test; /** * 在String的matches()方法,split()方法中使用正则表达式. * ...

  3. java match正则不生效_[Java教程]正则表达式match()函数

    [Java教程]正则表达式match()函数 0 2015-09-26 12:00:31 正则表达式match()函数: 此方法可在字符串内查找一个或多个正则表达式的匹配. 返回值是一个数组,但是此数 ...

  4. java编写正则表达式_如何用Java编写最快的表达式评估器之一

    java编写正则表达式 当然,标题有点吸引人,但确实如此(您当然不相信自己没有伪造自己的基准,但这是另一回事了). 因此,上周我正在寻找一个小型且可用的库来评估数学表达式. 我几乎直接偶然发现了这个s ...

  5. Java总结:正则表达式进行校验

    Java总结:正则表达式进行校验 目录 Java总结:正则表达式进行校验 一.校验数字的表达式 二.校验字符的表达式 了解理论知识,请点击:Java总结:正则表达式 一.校验数字的表达式 1 数字:^ ...

  6. Java总结:正则表达式

    目录 Java 正则表达式 正则表达式实例 实例 捕获组 实例 RegexMatches.java 文件代码: 正则表达式语法 Matcher 类的方法 索引方法 研究方法 替换方法 start 和 ...

  7. Java与正则表达式

    Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...

  8. java常见正则表达式用法

    java常见正则表达式用法 例1: 判断整个字符串是否只有大小写字母和数字 String str = "ABCaaa123GG";String reg = "^[A-Za ...

  9. JAVA:正则表达式(入门)

    JAVA:正则表达式(入门) 正则表达式 JAVA:正则表达式(入门) 前言 正则的作用 正则的符号含义 正则表达式在字符串中的常用方法 正则表达式对象Pattern(爬虫) 贪婪爬取与非贪婪爬取 捕 ...

  10. 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用

    简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...

最新文章

  1. openssh windows_WINDOWS环境配置SSH服务
  2. Fedora10下安装xgcom串口调试小助手
  3. html使两个按钮重叠,div按钮重叠HTML
  4. 关于盘符里某些文件夹删除不了的解决方案研究
  5. matlab超出维度,求助。。。matlab索引超出维度要怎么修改。。。谢谢
  6. 计算机硬件外围设备介绍,天津2012年自考“计算机外围设备使用与维护”课程考试大纲...
  7. C#3.0 为我们带来什么(3) —— 初始化器
  8. kaggle房价预测特征意思_Kaggle竞赛丨房价预测(House Prices)
  9. linux学习第一课:liunx概论
  10. Docker入门之四搭建私有仓库
  11. 在ubuntu10.10下安装Google谷歌拼音输入法
  12. 一、目标检测入门VOC2012
  13. Redis安装可视化管理软件
  14. uniApp中图片文件上传插件(uniFilePicker)
  15. 混jdon坛子的一些思考
  16. 敢创业但不敢上台演讲?
  17. 使用RecyclerView实现瀑布流
  18. 【报告分享】2021懂车帝经销商直播价值白皮书-懂车帝x巨量算数(附下载)
  19. 21 个 MySQL 表设计的经验准则
  20. 准双向口、推挽输出、开漏输出、高阻输入的区别

热门文章

  1. [C++STL]常用集合算法
  2. LeetCode 142环形链表||-中等
  3. Interpreter(解释器)--类行为型模式
  4. Θ(n)反转单链表(算法导论第三版第十章10.2-7)
  5. 题目 1886: [蓝桥杯][2017年第八届真题]包子凑数(欧几里得+完全背包)
  6. cg word List5
  7. word List 10
  8. 新方法-根据上排给出十个数,在其下排填出对应的十个数
  9. 【BZOJ4916】神犇和蒟蒻(杜教筛)
  10. 2019牛客多校Monotonic Matrix