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

热点内容
dede工具 浏览:507
5g网盟app怎么下载 浏览:486
微信备份老是连接中断 浏览:886
出台多少份文件 浏览:380
鞋子怎么搭配衣服的app 浏览:755
文件名使用的通配符的符号是什么 浏览:916
lol分卷文件损坏怎么办 浏览:276
6分管车螺纹怎么编程 浏览:732
海口农商银行信用卡app是什么 浏览:770
win10任务栏文件夹我的电脑 浏览:14
安卓nba2k18 浏览:776
文件夹密码怎么修改密码 浏览:271
苹果数据中心用什么服务器 浏览:769
省内圆通快递寄文件夹需要多少钱 浏览:740
iphone程序加密 浏览:884
win10文件夹调整文件行高 浏览:681
创意手绘教程 浏览:754
微信删除帐号信息 浏览:596
mysql操作类文件 浏览:649
绕过xp密码 浏览:158

友情链接