常用正则表达式语法大全(java 正则表达式是什么)

:暂无数据 2026-07-21 23:20:02 :0

常用正则表达式语法大全(java 正则表达式是什么)

大家好,今天小编来为大家解答以下的问题,关于常用正则表达式语法大全,java 正则表达式是什么这个很多人还不知道,现在让我们一起来看看吧!

本文目录

java 正则表达式是什么

常用的正则表达式大全:
(1) “^\d+$“  //非负整数(正整数 + 0)
(2) “^**$“  //正整数
(3) “^((-\d+)|(0+))$“  //非正整数(负整数 + 0)
(4) “^-**$“  //负整数
(5) “^-?\d+$“    //整数
(6) “^\d+(\.\d+)?$“  //非负浮点数(正浮点数 + 0)
(7) “^((+\.**)|(**\.+)|(**))$“  //正浮点数
(8) “^((-\d+(\.\d+)?)|(0+(\.0+)?))$“  //非正浮点数(负浮点数 + 0)
(9) “^(-((+\.**)|(**\.+)|(**)))$“  //负浮点数
(10) “^(-?\d+)(\.\d+)?$“  //浮点数
(11) “^[A-Za-z]+$“  //由26个英文字母组成的字符串
(12) “^[A-Z]+$“  //由26个英文字母的大写组成的字符串
(13) “^[a-z]+$“  //由26个英文字母的小写组成的字符串
(14) “^[A-Za-z0-9]+$“  //由数字和26个英文字母组成的字符串
(15) “^\w+$“  //由数字、26个英文字母或者下划线组成的字符串
(16) “^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$“    //email地址
(17) “^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$“  //url
(18) /^(d{2}|d{4})-((0({1}))|(1[1|2]))-((({1}))|(3[0|1]))$/ // 年-月-日
(19) /^((0({1}))|(1[1|2]))/((({1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
(20) “^([w-.]+)@(([{1,3}.{1,3}.{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|{1,3})(]?)$“ //Emil
(21) /^((\+?{2,4}\-{3,4}\-)|({3,4}\-))?({7,8})(\-+)?$/ //电话号码
(22) “^(d{1,2}|1dd|2d|25).(d{1,2}|1dd|2d|25).(d{1,2}|1dd|2d|25).(d{1,2}|1dd|2d|25)$“ //IP地址
(23)
(24) 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
(25) 匹配双字节字符(包括汉字在内):[^\x00-\xff]
(26) 匹配空行的正则表达式:\n[\s| ]*\r
(27) 匹配HTML标记的正则表达式:/《(.*)》.*《\/\1》|《(.*) \/》/
(28) 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
(29) 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(30) 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
(31) 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
(32) 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
(33) 匹配腾讯QQ号:^**$
(34) 元字符及其在正则表达式上下文中的行为:
(35) \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
(36) ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
(37) $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
(38) * 匹配前面的子表达式零次或多次。
(39) + 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
(40) ? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
(41) {n} n 是一个非负整数,匹配确定的n 次。
(42) {n,} n 是一个非负整数,至少匹配n 次。
(43) {n,m} m 和 n 均为非负整数,其中n 《= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
(44) ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
(45) . 匹配除 “\n“ 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
(46) (pattern) 匹配pattern 并获取这一匹配。
(47) (?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(48) (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(49) (?!pattern) 负向预查,与(?=pattern)作用相反
(50) x|y 匹配 x 或 y。
(51) [xyz] 字符集合。
(52) [^xyz] 负值字符集合。
(53) [a-z] 字符范围,匹配指定范围内的任意字符。
(54) [^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
(55) \b 匹配一个单词边界,也就是指单词和空格间的位置。
(56) \B 匹配非单词边界。
(57) \cx 匹配由x指明的控制字符。
(58) \d 匹配一个数字字符。等价于 。
(59) \D 匹配一个非数字字符。等价于 [^0-9]。
(60) \f 匹配一个换页符。等价于 \x0c 和 \cL。
(61) \n 匹配一个换行符。等价于 \x0a 和 \cJ。
(62) \r 匹配一个回车符。等价于 \x0d 和 \cM。
(63) \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
(64) \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
(65) \t 匹配一个制表符。等价于 \x09 和 \cI。
(66) \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
(67) \w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
(68) \W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
(69) \xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。
(70) \num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。
(71) \n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
(72) \nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
(73) \nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
(74) \un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。
(75) 匹配中文字符的正则表达式: [u4e00-u9fa5]
(76) 匹配双字节字符(包括汉字在内):[^x00-xff]
(77) 匹配空行的正则表达式:n[s| ]*r
(78) 匹配HTML标记的正则表达式:/《(.*)》.*《/1》|《(.*) /》/
(79) 匹配首尾空格的正则表达式:(^s*)|(s*$)
(80) 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
(81) 匹配网址URL的正则表达式:

关于正则表达式

================================================
第14章 强大的正则表达式:RegExp
================================================
14.2.2 正则表达式的两个构成部分
简写模式:
var 正则对象:RegExp = /匹配模式/标志位
构造函数模式:
var 正则对象:RegExp = new RegExp(匹配模式,标志位)

匹配模式就是正则表达式,标志位包括五个字母 gimsx

14.3 正则表达式语法
14.3.1 正则表达式中的文字符号
普通文字和符号:A-Z a-z 0-9 以及不是元字符的其它符号
输入Unicode字符时,同String一样,使用\uXXXX

元字符:三三二三个一(记忆口诀)
三个括号: {[(
三个匹配次数: *+? 星加问
两个断言: ^$ 定头定尾
三个一: | 选择符 . 模糊匹配 \ 转义

三个括号:
{定义匹配次数
[字符集
(子模式

三个匹配次数:
* 匹配出现0次或多次
+ 匹配出现至少1次或多次
? 匹配出现0次最多1次

两个断言:
^ 在/后出现时为左端断言, /^
$ 在/前出现时为右端断言, $/

三个独立元字符:
| 选择符,匹配时兼容匹配选择符两边的字符
. 模糊匹配,可以代替任意一个字符

\ 转义:转义的控制字符

14.3.2 正则表达式中的字符集
1.字符集的概念和最简单的字符集形式
[字符集]

字符集用中括号括起来
Unicode字符请使用\uXXXX 四位十六进制Unicode代码输入
如:/g[eo]t,分别匹配get和got,但不会匹配geot,因为字符集只能匹配一个字符

2.连字符在字符集中的运用
[字符-字符]
如:[a-z][A-Z],就是匹配英文字母字符集了

3.取反符号在字符集中的运用
[^字符集]
添加取反符号后,匹配时将忽略字符集中的所有元素

4.字符集中需要转义的特殊字符
\转义符号
常见要转义的字符有三类:
1.字符串: 双引号“ 单引号 ’ 反斜杠 \
2.正则表达式的源字符
3.字符集中的: [\^-

尽可能将会产生歧义的字符转义

14.3.3 特殊的点号(.)
.号可以替代任意单个字符,作为正则表达式中的模糊匹配字符

1.点号不匹配新行符(\n)
多行字符的模糊匹配中,.号不能匹配\n换行符,要匹配换行符,必须在标志位中使用s

2.尽量少使用点号“.”
只在明确不会模糊匹配时出错的情况下才用.模糊匹配,点号匹配所有的Unicode字符。

14.3.4 选择符
| 对选择符两边的元素作任意匹配。
使用|选择符时,尽可能使用括号将两边的操作数括起来,以方便区别。

14.3.5 括号与分组
() 圆括号将表达式的一部分括起来,就会将这部分定交成组,一旦命名了组,就可以通过“向后引用”来调用它。
它所括起的部分一般用于:
1.和选择符搭配,规定作用于选择符的范围,如/he(got|get)it/
2.和限定符搭配使用,指定匹配的重复次数,如/(get)*/

14.3.6 用正则表达式描述字符串的重复
使用{}定义匹配的重复次数,跟在要重复的表达式或字符后面
{最小出现次数[,最多出现次数]}
还有常用的三个 非显式限定符

*+? 星加问

* 出现0次或多次 等同 {0,}
+ 出现1次或多次 等同 {1,}
? 出现0次或最多1次 等同 {0,1}

14.3.7 注意正则表达式的贪婪性和懒惰性
使用*+?{}的时候,正则表达式总是尽可能向右搜寻尽可能多的匹配结果,如果想禁止此贪婪性,可在操作符后加上 ?,迫使程序运行时使用懒惰模式,优先使用左边匹配的第一个结果。

14.3.8 用正则表达式来定位
断言:指定匹配发生的位置
^ 匹配字符串起始的位置,一般跟在起始/后,组合成 /^
$ 匹配字符串结尾的位置,一般跟在结束/前,组合成$/
\b 匹配字符边界
\B 匹配非字符边界

字符边界指空格的位置,可跟在要匹配的表达式左边或右边

14.3.9 正则表达式的5个标志位。
g global 全局匹配,尽可能匹配全部结果
i ignoreCase 不区分大小写匹配
m multiline 断言控制符,使用后 ^$两个断言符才能生效
s dotall 匹配换行符标志
x extended 令正则表达式支持空格,但编译时会自动忽略,增加可视的友好度

14.3.10 正则表达式元字符优先级
优先级顺序从高到低排列

\ 转义符
(),(?:),(?=), 分级定义符号,字符集定义符号
*,+,?,{n},{n,},{n,m} 限定符
^,$,\位置定义 位置和顺序
| 选择符

/*=======================================================
2011年8月13日添加 零宽断言 的内容

. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
[\u4e00-\u9fa5]{2,20} 匹配2-20个汉字

* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

\W 匹配任意不是字母,数字,下划线的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

(exp) 匹配exp,并捕获文本到自动命名的组里
(?《name》exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?’name’exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言
(?=exp) 匹配exp前面的位置
(?《=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?《!exp) 匹配前面不是exp的位置
注释
(?#comment) 这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

=======================================================*/

14.4 正则表达式与字符串的结合使用详解
14.4.1 RegExp的exec()和test()
test方法
var RegExp对象:RegExp = /正则表达式/ 或 new RegExp(正则式,标志位)
var String对象:String = 字符;
RegExp对象.test(String对象)

RegExp对象.exec(正则表达式):Array
exec返回一个匹配后的数组

14.4.3 String类的replace()与正则表达式向后引用
()使用子表达式括起的表达式,可以在后边引用 ,使用\n n为索引 从1至99
/\b([a-z]+) \1\b/gi 其中的\1就是引用前面第一个([a-z])
可在处理函数中用 $n 来引用子模式

此节部分略过 p245

14.5 常用的正则表达式
此节略 p246-p248

================================================
第15章 XML数据处理
================================================
一大堆理论

15.4 创建XML对象
15.4.1 使用构造函数创建XML对象
var String对象:String = 字符串
var XML对象:XML = new XML(String对象);
trace(XML对象.属性)

15.4.2 直接使用XML文本创建XML对象
var XML对象:XML =
《![CDATA[
直接输入XML文本 或换行
]]》

或者使用变量的方式

var String对象:String = 字符;
var XML对象:XML =
《{String对象}》

变量使用{}括起来,其它的与XML普通输入无异

15.5 使用运算符操作XML数据
15.5.1 使用“.“与“@“ 直接访问、修改、创建和删除XML对象
访问:
var XML对象:XML = XML文本;
trace(XML对象.节点名.子节点名)
trace(XML对象.节点[索引])
trace(XML对象.节点.@属性)
trace(XML对象.节点.@属性[索引])

15.5.2 使用“.“与“@“直接修改XML对象
注意:如果存在多个同级元素时,不能直接使用.和@修改,因为返回结果是XMLList对象
XML对象.节点.子节点 = 值 //直接修改节点文本
XML对象.节点.@属性 = 值 //直接修改属性值

15.5.3 使用“.“与“@“直接添加删除子元素和属性
注意:如果存在多个同级元素时,不能直接使用.和@修改,因为返回结果是XMLList对象
XML对象.节点.新节点名 = new XML(); //添加一个空白节点
XML对象.节点.新节点名 = 字符串; //添加一个字符串节点
XML对象.节点.@新属性名 = 值; //添加一个节点属性

删除节点:
delete XML对象.节点.元素[@属性]

15.5.4 简单方便地搜索XML子元素和属性
trace(XML对象.节点..子节点) //显示所有同级子节点
trace(XML对象.节点.@*.toXMLString()); //显示所有同级节点中的所有属性值
trace(XML对象.节点.(子节点 《 1000)); //显示节点中所有节点文本大于1000的子节点元素
trace(XML对象.节点.(@属性 == 值)); //显示节点中属性等于值的节点

15.5.5 使用正则表达式或自定义函数搜索XML子元素和属性
自定义函数:
XML对象.节点.(自定义函数(子节点));
function 自定义函数(t:*):Boolean{
t.length()
if(t《100000) return true;
teturn false;
//自定义函数将根据子节点的数量执行多次
//自定义函数返回值必须是Boolean
}

正则表达式:
XML对象.节点.(子节点.match(正则表达式));

15.6 用API实现的一些常用XML操作
本节略p264

15.7 XML的命名空间
本节略p265

15.8 XML对象与XMLlist对象
本节略p268

正则表达式^\d+(.\d+)$的意思

表示行开头、至少出现一次数字、(任意字符和至少出现一次数字)出现1次或0次、行结尾。

^:行开头

\d:数字

+:出现至少1次

.:任意字符,除换行和回车之外

?:出现0或1次

(.\d+)?:括号里内出现0或1次

$:行结尾

扩展资料

常用正则表达式:

1、Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

2、域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

3、InternetURL:[a-zA-z]+://[^\s]* 或 ^

邮编的正则表达式

代码如下:

package TestRegex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Test01 {

    /**

     * 邮政编码正则:“^\\d{5}$“

     * ^:正则开始符

     * $:正则结束符

     * :范围为1-9

* \:转移字符

     * \d:数字【0-9】

     * X{n}:恰好n次:注意从0开始

     */

    public static void main(String args) {

        //定义正则

        String str= “^\\d{5}$“;

        //正确的邮件编码

        String s = “471400“;

        //错误邮政编码

        String s2 =“4560200“;

       /**

         * Pattern为模式类型,

         * compile(正则)方法预编译正则,

         * 得到一个Matcher对象

         */

        Pattern p =Pattern.compile(str);

        //Pattern中的matcher()方法传入要匹配的字符串与正则进行匹配i

        Matcher m=p.matcher(s);

        Matcher m2=p.matcher(s2);

        //Matcher类中的matches()方法判断是否匹配成功

        boolean bo= m.matches();

        boolean bo2= m2.matches();

        //输出匹配结果:true为成功,false为失败

        System.out.println(bo);

        System.out.println(bo2);

    }

}

扩展资料

正则表达式简单语法及常用正则表达式:

基本符号:

^  表示匹配字符串的开始位置  (例外  用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串)

$  表示匹配字符串的结束位置

*  表示匹配 零次到多次

+  表示匹配 一次到多次 (至少有一次)

?  表示匹配零次或一次

.  表示匹配单个字符 

|  表示为或者,两项中取一项

(  ) 小括号表示匹配括号中全部字符

[  ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z]

{  } 大括号用于限定匹配次数  如 {n}表示匹配n个字符  {n,}表示至少匹配n个字符  {n,m}表示至少n,最多m

\  转义字符 如上基本符号匹配都需要转义字符   如 \*  表示匹配*号

\w 表示英文字母和数字  \W  非字母和数字

\d  表示数字   \D  非数字

常用的正则表达式:

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/《(.*)》.*《\/\1》|《(.*) \/》/ 

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

正则表达式语法

正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:
JScript VBScript 匹配
/^\[ \t]*$/ “^\[ \t]*$“ 匹配一个空白行。
/\d{2}-\d{5}/ “\d{2}-\d{5}“ 验证一个 ID 号码是否由一个 2 位数字,一个连字符以及一个 5 位数字组成。
/《(.*)》.*《\/\1》/ “《(.*)》.*《\/\1》“ 匹配一个 HTML 标记。
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n“。’\n’ 匹配一个换行符。序列 ’\’ 匹配 “\“ 而 “\(“ 则匹配 “(“。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的 Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z“ 以及 “zoo“。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo“ 以及 “zoo“,但不能匹配 “z“。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,“do(es)?“ 可以匹配 “do“ 或 “does“ 中的“do“ 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob“ 中的 ’o’,但是能匹配 “food“ 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob“ 中的 ’o’,但能匹配 “foooood“ 中的所有 o。’o{1,}’ 等价于 ’o+’。’o{0,}’ 则等价于 ’o*’。
{n,m} m 和 n 均为非负整数,其中n 《= m。最少匹配 n 次且最多匹配 m 次。例如,“o{1,3}“ 将匹配 “fooooood“ 中的前三个 o。’o{0,1}’ 等价于 ’o?’。请注意在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 “oooo“,’o+?’ 将匹配单个 “o“,而 ’o+’ 将匹配所有 ’o’。
. 匹配除 “\n“ 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在 JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ’\(’ 或 ’\)’。
(?attern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或“ 字符 (|) 来组合一个模式的各个部分是很有用。例如, ’industr(?:y|ies) 就是一个比 ’industry|industries’ 更简略的表达式。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, ’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000“ 中的 “Windows“ ,但不能匹配 “Windows 3.1“ 中的 “Windows“。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1“ 中的 “Windows“,但不能匹配 “Windows 2000“ 中的 “Windows“。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y 匹配 x 或 y。例如,’z|food’ 能匹配 “z“ 或 “food“。’(z|f)ood’ 则匹配 “zood“ 或 “food“。
[xyz] 字符集合。匹配所包含的任意一个字符。例如,’[abc]’ 可以匹配 “plain“ 中的 ’a’。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如,’[^abc]’ 可以匹配 “plain“ 中的’p’。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ’a’ 到 ’z’ 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]’ 可以匹配任何不在 ’a’ 到 ’z’ 范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。例如, ’er\b’ 可以匹配 “never“ 中的 ’er’,但不能匹配 “verb“ 中的 ’er’。
\B 匹配非单词边界。’er\B’ 能匹配 “verb“ 中的 ’er’,但不能匹配 “never“ 中的 ’er’。
\cx 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ’c’ 字符。
\d 匹配一个数字字符。等价于 。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于 ’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,’\x41’ 匹配 “A“。’\x041’ 则等价于 ’\x04’ & “1“。正则表达式中可以使用 ASCII 编码。.
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,’(.)\1’ 匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。

java 正则表达式是什么的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 正则表达式是什么、java 正则表达式是什么的信息别忘了在本站进行查找哦。

常用正则表达式语法大全(java 正则表达式是什么)

本文编辑:admin

本文相关文章:


java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)

java算法大全(java中的算法,一共有多少种,哪几种,怎么分类)

大家好,java算法大全相信很多的网友都不是很明白,包括java中的算法,一共有多少种,哪几种,怎么分类也是一样,不过没有关系,接下来就来为大家分享关于java算法大全和java中的算法,一共有多少种,哪几种,怎么分类的一些知识点,大家可以

2026年10月8日 19:30

java游戏编程(用java怎么编写游戏程序)

java游戏编程(用java怎么编写游戏程序)

本篇文章给大家谈谈java游戏编程,以及用java怎么编写游戏程序对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月27日 04:20

java课件(我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等)

java课件(我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等)

本篇文章给大家谈谈java课件,以及我想做一个介绍java项目的ppt文件,我想知道该如何介绍会好,比如说用到的技术,实现的功能等等对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决

2026年9月20日 08:30

lombok(java lombok 怎么赋值)

lombok(java lombok 怎么赋值)

各位老铁们好,相信很多人对lombok都不是特别的了解,因此呢,今天就来为大家分享下关于lombok以及java lombok 怎么赋值的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月19日 20:10

php正则表达式匹配中文(php用正则表达式判断中文数字)

php正则表达式匹配中文(php用正则表达式判断中文数字)

今天给各位分享php用正则表达式判断中文数字的知识,其中也会对php用正则表达式判断中文数字进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月14日 18:00

免费java(哪里有免费学习java的学习资料)

免费java(哪里有免费学习java的学习资料)

大家好,关于免费java很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于哪里有免费学习java的学习资料的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年8月23日 07:00

java软件(学习java 的软件有哪些)

java软件(学习java 的软件有哪些)

“java软件”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看java软件(学习java 的软件有哪些)!

2026年8月3日 13:50

五子棋java课程设计报告(java游戏五子棋论文)

五子棋java课程设计报告(java游戏五子棋论文)

这篇文章给大家聊聊关于五子棋java课程设计报告,以及java游戏五子棋论文对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年7月13日 00:40

extends(在java中,〈extends A 〉与〈T extends A〉有什么区别)

extends(在java中,〈extends A 〉与〈T extends A〉有什么区别)

大家好,extends相信很多的网友都不是很明白,包括在java中,〈extends A 〉与〈T extends A〉有什么区别也是一样,不过没有关系,接下来就来为大家分享关于extends和在java中,〈extends A 〉与〈T

2026年7月9日 22:30

kjava使用?:  kjava 是什么啊

kjava使用?: kjava 是什么啊

本篇文章给大家谈谈kjava,以及kjava使用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年7月8日 02:20

更多文章:


majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

最近更新

majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表