导航:首页 > 编程语言 > 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正则反向引用相关的资料

热点内容
怎么将pdf文件上传到慕课 浏览:768
cad怎么做文件标签 浏览:235
openwrt记住wifi密码 浏览:20
迅雷直播那个版本好用吗 浏览:921
ps3硬破解硬盘里文件 浏览:290
从什么网站上能买到正品化妆品 浏览:777
gmg找不到注册代码 浏览:580
儿童配眼镜时需要哪些数据 浏览:437
app网络初始化异常 浏览:1
王一博玩什么网络游戏 浏览:54
不在主业的app怎么删除 浏览:620
液化在ps安装包哪个文件夹里 浏览:291
三国杀升级经验 浏览:787
u盘文件误删如何找回 浏览:908
元界小说app怎么下载 浏览:996
易课堂收集数据怎么使用 浏览:484
陕西文件柜办公家具多少钱 浏览:573
illustrator免费视频教程下载 浏览:413
delmia仿真文件格式 浏览:808
mastercam编程怎么旋转角度 浏览:70

友情链接