java正则规则

常用正则规则:

构造 匹配
字符
\\ 反斜线字符
\r 回车符 (‘\u000D‘)
\n 新行(换行)符 (‘\u000A‘)
字符类
[abc] ab 或 c
[^abc] 任何字符,除了 ab 或 c(否定)
[a-zA-Z]
a 到 z 或 A 到 Z, 两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p[a-dm-p](并集)
[a-z&&[def]] de 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p[a-lq-z](减去)
预定义字符类
 . 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w
包括下划线的任何单词字符:[a-zA-Z0-9_]

\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z  输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
 Greedy 数量词
 X?  X,一次或一次也没有
 X*  X,零次或多次
 X+  X,一次或多次
 X{n}  X,恰好 n 次
 X{n,}  X,至少 n 次
 X{n,m}  X,至少 n 次,但是不超过 m 次
  Reluctant 数量词
 X??  X,一次或一次也没有
 X*?  X,零次或多次
 X+?  X,一次或多次
 X{n}?  X,恰好 n 次
 X{n,}?  X,至少 n 次
 X{n,m}?  X,至少 n 次,但是不超过 m 次
  Possessive 数量词
 X?+  X,一次或一次也没有
 X*+  X,零次或多次
 X++  X,一次或多次
 X{n}+  X,恰好 n
 X{n,}+  X,至少 n
 X{n,m}+  X,至少 n 次,但是不超过 m
  Logical 运算符
 XY  X 后跟 Y
 X|Y  XY
 (X)  X,作为捕获组
  Back 引用
 \n  任何匹配的 nth 捕获组
  引用
 \  Nothing,但是引用以下字符
 \Q  Nothing,但是引用所有字符,直到 \E
 \E  Nothing,但是结束从 \Q 开始的引用
时间: 2024-08-17 05:58:33

java正则规则的相关文章

java正则匹配

java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {public static void main(String[] args) {String s = "A876X";// 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来

Java正则速成秘籍(一)之招式篇

目录 导读 概述 Pattern类 Matcher类 校验文本是否与正则规则匹配 案例:lookingAt vs find vs matches 查找匹配正则规则的文本位置 案例:使用start().end().group() 查找所有匹配正则条件的子序列 替换匹配正则规则的文本 案例:replaceFirst vs replaceAll 案例:appendReplacement.appendTail和replaceAll 案例:quoteReplacement和replaceAll,解决特殊字

eclipse使用与java语法规则

eclipse的使用 1.运行点击"三角图标"或右键Run As运行2.3. java语法规范 1.括号要成对出现2.每句代码应该有分号结束3.java语法区分大小写4.一个文件只能写一个带有public的class声明,还必须和文件名一致.一个文件中不可以有多个带有public的修饰符号5.名称写的时候不要包含关键字和非法字符(字母和下划线开头可以,也可以用数字结尾)6.java代码的语法全部都是半角符号7.学会规范的写代码. 写代码的好习惯: 1.常按保存,写完一句或几句就按一次C

Java正则表达中Greedy Reluctant Possessive 的区别

上一篇文章<编程思想之正则表达式 >中讲了正则表达式的原理.使用方法和常见的正则表达式总结,本文将进一步探讨Java正则表达中Greedy.Reluctant.Possessive三种策略的区别. 从Java的官方文档http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html中我们可以看到,正则表达式表示数量词的符号有三套,分别是Greedy(贪婪的).Reluctant(勉强的)和Possessive(独占的).

Java正则零宽断言出现PatternSyntaxException异常

今天在写正则的时候发现Java正则使用零宽断言(?<!exp) 匹配前面不是exp的位置,报出了一个异常: Exception in thread "main" java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 26 (?<=<img[^>]*src="[^"]*")

python——re和正则规则

re模块和正则规则: 正则规则:在线测试工具 http://tool.chinaz.com/regex/ 字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字.字母.标点等等.假如你现在要求一个位置"只能出现一                               个数字",那么这个位置上的字符只能是0.1.2...9这10个数之一. 字符: 元字符 匹配内容 .  匹配除换行符以外的任意字符 \w 匹配字母或数

java 正则获取html的值

对正则表达式不是很熟悉,最近做项目需要用到正则,一段html代码,例如<form><input name=\"test1\"    value=\"测试1\" ></input><input name=\"test2\"    value=\"测试2\" ></input></form> 需要获取test1对应的value的值: String source

JAVA编程规则【转自java编程思想】

本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母.这样便可标志出它们属于编译期的常数.Java包(Package)属于一种特殊情况:它们全都是小

java 正则匹配提取html纯文本

本文来自于我的个人博客: java 正则匹配提取html纯文本 做内容的大家都知道,从html中直接提取纯文本是一个很大的问题,现将我做的正则匹配贴上: import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestReg { static String reg = "<[a-zA-Z]+.*?>([\s\S]*?)</[a-zA-Z]*>"; public st