java String的replaceAll方法替换中间部分下划线以后的文字的正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java String的replaceAll方法替换中间部分下划线以后的文字的正则表达式相关的知识,希望对你有一定的参考价值。

现在想写一个正则表达式,想达到如下效果:
原始:http://www.hhhhh.com/news/index_2.html
替换为:http://www.hhhhh.com/news/index/
将后面的_2.html 替换掉
规则:以下划线开头往后的内容全部替换掉,正则表达式应该怎么写,谢谢啦

String path="hhhhh.com/news/index_2.html";

 String pString =path.replaceAll("_2.html", "/");

 System.out.println(pString);

追问

我后面的_2.html是动态的

追答String pString =path.replaceAll("[_][a-zA-Z0-9_\\\\.]*", "/");

因为不知道你具体后面的是什么格式的,所以我这个正则表达式可以匹配所有以_开头的包括.和_在内的所有数字字母组合

参考技术A 如果是Java的话可以直接用substring(0, indexOf("_"))这种方法吧。。。。追问

可是我要将后面的字符串替换为”/“,不能我subString之后再追加一个”/"吧

追答

试试/^_/

Java-String的replaceAll()方法(力扣20题相关)

https://www.runoob.com/java/java-string-replaceall.html

原地址在上面

replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。

语法

public String replaceAll(String regex, String replacement)

参数

  • regex -- 匹配此字符串的正则表达式。

  • newChar -- 用来替换每个匹配项的字符串。

返回值

成功则返回替换的字符串,失败则返回原始字符串。

实例

public class Test {
    public static void main(String args[]) {
        String Str = new String("www.google.com");

        System.out.print("匹配成功返回值 :" );
        System.out.println(Str.replaceAll("(.*)google(.*)", "runoob" ));
        System.out.print("匹配失败返回值 :" );
        System.out.println(Str.replaceAll("(.*)taobao(.*)", "runoob" ));
    }
}

以上程序执行结果为:

匹配成功返回值 :runoob
匹配失败返回值 :www.google.com

以上是关于java String的replaceAll方法替换中间部分下划线以后的文字的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Java-String的replaceAll()方法(力扣20题相关)

Java String ReplaceAll 方法给出非法重复错误?

Java:理解 String replaceAll() 方法

JAVA中appendReplacement()方法和replaceAll()方法有啥区别。。

String replace() 和 replaceAll() 的区别

String.replaceAll()方法替换字符串中的反斜杠()