java 字符串如何取中间文本
比如 qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd我想要去除aaa 和 bbb的中间文本 而且aaabbb也要去掉 结果是这样的 这种怎么写呢?
qwesagnkansdqweqweqasfjasdasd 先搜索aaa获得索引,再搜索bbb获得索引,最后就是前后字符串拼一下就好了 int index_1 = str.indexOf("aaa");
int index_2 = str.indexOf("bbb");
str = str.substring(0, index_1)+str.substring(index_2+1 , str.length()) String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
Pattern pattern = Pattern.compile("aaa.*bbb");
Matcher matcher = pattern.matcher(str);
if (matcher.find()){
str = matcher.replaceAll("");
}
System.out.println(str);
} 本帖最后由 yoyoflash 于 2022-4-14 16:48 编辑
代码:
package com.example.demo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegDemo {
public static void main(String[] args) {
//正则表达式
String reg = "aaa.*bbb";
//要匹配的字符
String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
//进行匹配
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(str);
String result = matcher.replaceAll("");
System.out.println("替换前:\t" + str);
System.out.println("替换后:\t" + result);
}
}
输出结果:
替换前: qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd
替换后: qwesagnkansdqweqweqasfjasdasd 先找到两个坐标,然后操作字符串。
用正则表达式也行 写正则匹配,或者匹配特定字符拿起始下标去截取 五花八门的写法 本帖最后由 回忆童年快乐 于 2022-4-14 17:38 编辑
String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
String replace = str.replaceAll("aaa(.*)bbb", "");
页:
[1]