http://blog.csdn.net/pipisorry/article/details/51059500

正则表达式的一般规则都一样,见[python正则表达式]

java正则表达式中的特殊字符转义

1.字符"|","*","+"都得加上转义字符,前面加上"\\"。
2.而如果是"\",那么就得写成"\\\\"。(java正则表达式用起来都这么不爽!!!)

java字符串分割

java正则表达式可以使用库java.util.regex

也可以使用String自带的方法如sourceStr.split(regex,maxSplit),split 的实现直接调用的 matcher 类的 split 的方法

StringTokenizer 类允许应用程序将字符串分解为标记。StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。但是StringTokenizer对于字符串"192.168..33"的分割,返回的字符串数组只有3个元素,对于两个分隔符之间的空字符串会忽略,这个要慎重使用。但是String.split(String.split是用正则表达式匹配,所以不使用KMP字符串匹配算法)用的都是按顺序遍历的算法,时间复杂度O(m*n),较高,所以性能上,StringTokenizer好很多,对于频繁使用字符串分割的应用,例如etl数据处理,使用StringTokenizer性能可以提高很多。

查找并抽取对应条件字符串

package Test;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test {public static void main(String[] args) {Test t = new Test();t.test4();}public void test4() {Pattern pattern = Pattern.compile("(.+?)\\(R(.+?)\\)");Matcher matcher = pattern.matcher("avg(R4)");if (matcher.find()) {System.out.println(matcher.group(1));// 分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。System.out.println(matcher.group(2));}}
}

avg
4

前向后向查找

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test {public static void main(String[] args) {Test t = new Test();t.t7();}public void t7() {// 向后匹配String a = "I paid $90 for 10 oranges, 12 pears and 8 apples. I saved $5 on ";Pattern p = Pattern.compile("(?<=\\$)\\d+");Matcher m = p.matcher(a);while (m.find()) {String group = m.group();System.out.println(group);}// 向前匹配a = "https://mail.huawei.com ";p = Pattern.compile(".+(?=:)");m = p.matcher(a);while (m.find()) {String group = m.group();System.out.println(group);}}
}

规则参考[python正则表达式-Python支持的正则表达式元字符和语法-特殊构造]

from: http://blog.csdn.net/pipisorry/article/details/51059500

ref:

Java正则表达式小记相关推荐

  1. java正则表达式课程_通过此免费课程学习正则表达式

    java正则表达式课程 by Beau Carnes 通过博卡恩斯 通过此免费课程学习正则表达式 (Learn Regular Expressions with this free course) & ...

  2. java正则表达式 1,Java正则表达式学习(1)

    Java正则表达式学习(一) 1.什么是正则表达式: 正则表达式(regular expressions) 是一种描述字符串集的方法,它是以字符串集中各种字符串的公有特征为依据的. 正则表达式可以用于 ...

  3. 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...

    查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...

  4. java正则表达式的用法_Java 正则表达式的使用

    Java 正则表达式的使用 1:正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,"n"匹配字符"n".&quo ...

  5. Java正则表达式--Matcher.group函数的用法

    https://www.cnblogs.com/jiafuwei/p/6080984.html Java正则表达式--Matcher.group函数的用法 原来,group是针对()来说的,group ...

  6. java 正则表达式入门(一)

    Java正则表达式 定义:具有特定规则的一种表达式语言. 作用:专门用于操作字符串,操作意味着(校验,截取).且可以简化我们对字符串的操作方式 比如,验证手机号码 如果没有正则表达式我们的过程就应该是 ...

  7. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  8. Java 正则表达式使用详解

    今天研究开源项目,哆啦A梦,研究里面显示log 的原理. 后来发现,用到了正则表达式.觉得很有用,就捡起来,重新研究一下. 学习思路指导: 每一门学问,最好的深入学习方法,是去其官网,研究其说明文档. ...

  9. java正则表达式 过滤特殊字符的正则表达式

    在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码 // 过滤特殊字符 public static String StringFilter(Str ...

  10. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

最新文章

  1. 初次使用MyEclipse || Servlet 的生命周期
  2. 二、计算机视觉与卷积神经网络
  3. Bing.com在.NET Core 2.1上运行
  4. centos mate桌面_CENTOS7安装各种桌面系统 CENTOS安装桌面图形化GUI GNOME/KDE/Cinnamon/MATE/Xfce...
  5. c++读取excel_Python读取并提取xlsx数据+去趋势和高通滤波与低通滤波
  6. Codeforces Round #223 (Div. 2): E. Sereja and Brackets(线段树)
  7. Android Button 实现渐变背景色、外边框颜色、圆角弧度、点击变色(完整源码)
  8. python 线程锁_Python线程锁的实现
  9. opencv ipcam
  10. 「雷锋前线」迅雷的“星域CDN”能撼动市场吗?
  11. MySQL-用户管理
  12. 如何关闭Microsoft Office正版增值计划?
  13. 敏捷团队要有一个《伊凡卡目标》——计划会的共识和每日站会的焦点
  14. 吴恩达深度学习L1W2——实现简单逻辑回归
  15. Chrome 浏览器清除单张网页缓存
  16. java excel 插件_轻量级的原生JavaScript的Excel插件——JExcel
  17. 宏油庄冒菜的菜品设置和制作方法
  18. javaFX创建一个弹出窗口
  19. GBase项目管理实践总结——挣值管理学习
  20. 如今互联网时代,必须学习黑客的思维模式

热门文章

  1. Fragment-传递参数
  2. Linux下杀僵尸进程办法
  3. 求字符串中对称的子字符串的最大长度
  4. 如何使用UIAutomation进行iOS 自动化测试(Part II)
  5. 存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
  6. linux vi 编辑命令
  7. GCPC 2018 – Problem D: Down the Pyramid
  8. android Sharedpreferences数据存储使用方法
  9. 通用数据链接(UDL)的用法
  10. VS属性页的目录类型