导航:首页 > 编程语言 > java正则反向引用

java正则反向引用

发布时间:2023-06-14 05:31:12

⑴ 正则表达式的后向引用可以解释一下吗

比如正则 ab(?=cd)
它只会匹配后面是cd的ab,如果后面不是cd,那些ab就不会匹配。
还有否定的情况,即匹配后面不是什么的 内容
如 ab(?!cd) 和上面正好相反,它只会匹配后面不是cd的ab,如果后面是cd,这些ab就不匹配。
有些书上也把这种情况叫做 “环视结构”、“顺序环视”、“零宽断言”、“正向断言”等。
还有判断前面字符的情况,这叫“逆序环视”、“负向断言”等
期望这是你要的解释。还有一种和“引用”有关的是下面的情况
ab(cd)\1
这里的\1就涉及到引用【后面引用前面的】。\1代表前面的第一个括号中的内容。
这里匹配的就是abcdcd
这里的括号叫做“捕获”,可以有多个括号
\1也叫“反向引用”,如果有两个括号,\2可以引用第二个括号中的内容。
后面的可能是你问的情况。
括号和\1之间不一定挨着,中间有其他字符也是可以的。

java 正则表达式是什么

不同情况下的正则表达式:

⑶ java正则表达式,反向匹配

你说的这些词都是中文后面跟一个/n吧,用下面的正则就好了

([\u4e00-\u9fff]+)/n
这个问题是版java分类的,java就是权这样写
import java.util.regex.*;
Pattern p = Pattern.compile("([\\u4e00-\\u9fff]+)/n");

⑷ java正则表达式,捕获组重命名怎么搞

1. 捕获组及其编号:
1) 捕获组之前讲过,就是匹配到的内容,按照()子表达式划分成若干组;
2) 例如正则表达式:(ab)(cd(ef))就有三个捕获组,没出现一对()就是一个捕获组
3) 捕获组编号规则:
i. 引擎会对捕获组进行编号,编号规则是左括号(从左到右出现的顺序,从1开始编号;
ii. 例如:

2. 反向引用:
1) 捕获组的作用就是为了可以在正则表达式内部或者外部(Java方法)引用它;
2) 如何引用?当然是通过前面讲的用捕获组的编号来引用咯!
3) 正则表达式内部引用:
i. \X:X是一个十进制数,X的范围必须落在捕获组编号范围之内,该表达式就匹配X号捕获组所匹配到的内容;
ii. 从上面的描述可以看出,\X匹配的内容是必须X号捕获组匹配成功之后才能确定的!
iii. 例如:([ab])\1,匹配aabbcc的结果是aa和bb,\1的内容必须要让1号捕获组捕获后才能确定,如果1号捕获的是a那么\1就是a,1号捕获到了b那么\1就是b;
4) 正则表达式外部引用:就是用Matcher对象的start、end、group查询匹配信息时,使用捕获组编号对捕获组引用(int group);

3. 捕获组命名:
1) 如果捕获组的数量非常多,那都用数字进行编号并引用将会非常混乱,并且难以记忆每个捕获组的内容及意义,因此对捕获组命名显得尤为重要;
2) Java 7开始提供了对捕获组命名的语法,并且可以通过捕获组的名称对捕获组反向引用(内外都行);
i. 命名捕获组的语法格式:(?<自定义名>expr)
ii. 例如:(?<year>\d{4})-(?<date>\d{2}-(?<day>\d{2}))
a. 有三个命名捕获组year、date和day
b. 从左到右编号分别为1、2、3(编号同样是有效的)
3) 命名捕获组的反向引用:
i. 正则表达式内引用:\k<捕获组名称>
!例如:(?<year>\d{4})-\k<year>可以匹配1999-1999
ii. 外部引用:Matcher对象的start、end、group的String name参数指定要查询的捕获组的名称;

阅读全文

与java正则反向引用相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接