java - 在java中使用正则表达式删除匹配的字符串

标签 java regex string

这是我的代码,请检查。最后我想删除 list-style-image: url(images/dot.gif);来自字符串

String temp = "font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: F143F;list-style-image: url(images/dot.gif);list-style-type: none;"; 

Pattern pxPattern = Pattern.compile("([a-z]+-)+([a-z]+):(\\s)url\\(.*?\\);");

Matcher pxMatcher = pxPattern.matcher(temp);

while(pxMatcher.find()) {
    System.out.println(pxMatcher.group());
    String urlString =pxMatcher.group();
    if(!urlString.matches("http://|https://")) {
        System.out.println("Firts: "+temp.trim());
        System.out.println(urlString);
        System.out.println(temp.replaceAll(urlString, ""));
        //System.out.println("Remove: "+temp);
    }
}

最佳答案

我将删除 list-style-image 如下(而不是使用 while 循环,这可以在一行中完成):

temp.replaceAll("list-style-image:[^;]+;?", "");

解释:

  • 这将查找 list-style-image,
  • 然后是一个或多个不是分号的字符
  • 然后是一个可选的分号

这将从字符串的中间和结尾删除 list-style-image 属性。

结果:

font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: F143F;list-style-type: none; 

关于java - 在java中使用正则表达式删除匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351542/

相关文章:

java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?

Java 语义 - 有没有办法写得更好?

用于 Oracle 访问的 Java 代码在执行期间失败。我该如何修复我的代码?

regex - Awk match() - 每行多个

javascript - 如何用js替换html中特定属性中的括号?

c# - 缩写列表中给定的字符串

string - 如何有效地检查两个字符串之间的 Levenshtein 编辑距离是否为 1

java - "must implement the inherited abstract method"

javascript - 密码 : "Atleast 1 letter, 1 number, 1 special character and SHOULD NOT start with a special character" 的正则表达式

c - 填充八位字节串