Java 正则获取两个字母之间的内容(最新推荐)
Java 正则获取两个字母之间的内容
正则匹配两个字符之间的内容
表达式: (?<=A).*?(?=B)
匹配两个字符串A与B之间的内容,不包含A和B
// 匹配规则
String reg = "(?<=E).*?(?=U)";
String temp = "qwErtyUio";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(temp);
if( matcher.find() ){
System.out.println(matcher.group());
}
//打印内容 rty表达式: A.*?(?=B)
匹配两个字符串A与B之间的内容,包含B,不包含A
// 匹配规则
String reg = "W.*?(?=H)";
String temp = "eWiowedjewHw";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(temp);
if( matcher.find() ){
System.out.println(matcher.group());
}
//打印内容 iowedjewH表达式: A.*?B
匹配两个字符串A与B之间的内容,包含A和B
// 匹配规则
String reg = "A.*?B";
String temp = "aAabcBc";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(temp);
if( matcher.find() ){
System.out.println(matcher.group());
}
//打印内容 AabcB注: “ . ”表示任意字符,“ ? ”表示匹配一次或多次,“ ?<=A ” 表示以A开头,“ ?=B ”表示以B结尾
java 正则表达式截取两个字符串之间的内容
有一个需求,需要截取字符串中,两个字符串之间的内容。
比如字符串:啊啊啊标题@多项选择题描述@呵呵呵呵
现在需要截取【标题@】和【描述@】之间的字符串,使用正则表达式的方式截取,代码如下
String text3 = "啊啊啊标题@多项选择题描述@呵呵呵呵";
String reg3 = "(?<=标题@)[\\s\\S]*(?=描述@)";
Pattern p3 = Pattern.compile(reg3);
Matcher m3 = p3.matcher(text3);
if(m3.find()){
System.out.println(m3.group());
}输出结果:

String reg3 = "(?<=标题@)[\\s\\S]*(?=描述@)";
这个正则表达式使用了零宽断言,匹配标题@开头,并且描述@结尾的字符串,并且不包括这两个字符串。[\\s\\S]是匹配任何空或者非空的字符,*表示匹配0次或者多次。
如果需要保留这个开头的字符串和结尾的字符串,那么正则表达式可以改为这样:
String reg3 = "标题@[\\s\\S]*描述@";
改为这样后,输出内容就变为了下面这样,会包含前面和后面的字符串:

到此这篇关于Java 正则获取两个字母之间的内容的文章就介绍到这了,更多相关正则匹配两个字符之间的内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
正则表达式Regular Expression (RegExp)详解
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE2015-11-11
使用正则表达式过滤 S3 上以 _$folder$ 结尾的占位文件的方法
当我们使用命令行批量从 S3 上拷贝文件或统计文件数量时,希望能排除掉 S3 上以 _$folder$ 结尾的占位文件,这个正则表达式应该怎么写呢,本文给大家介绍使用正则表达式过滤 S3 上以 _$folder$ 结尾的占位文件的方法,感兴趣的朋友一起看看吧2023-12-12
SQL正则表达式错误 “parentheses not balanced“ 问题
在实际开发中,数据库查询经常需要使用正则表达式(REGEXP)来筛选复杂条件下的数据,然而,一些开发者在操作中可能会遇到类似以下错误parentheses not balanced,所以本文给大家介绍了SQL正则表达式错误 “parentheses not balanced“ 问题的排查和解决方案2024-12-12


最新评论