如何在Java中用正则表达式删除<script> .. </script>?

时间:2014-09-10 09:31:19

标签: java regex

现在我有了这个:

    String s = "1<script type='text/javascript'>2</script>3<script type='text/javascript'>3</script>5";
    Pattern pattern = Pattern.compile("<script.*</script>");
    Matcher matcher = pattern.matcher(s);

    while (matcher.find()) {
        s = s.replace(matcher.group(), "");
    }

    System.out.println(s);

结果是

  

15

但我需要

  

135

在PHP中我们有/ U修饰符,但我应该用Java做什么?我想的是这样的,但这是不正确的:

Pattern pattern = Pattern.compile("<script[^(script)]*</script>");

2 个答案:

答案 0 :(得分:3)

<script([^>]*)?>.*?<\/script>

试试这个。你需要?来进行懒惰比赛或更短的比赛。

参见演示。

http://regex101.com/r/kO7lO2/3

答案 1 :(得分:1)

replaceAll以下正则表达式为空字符串:

<script [^>]*>[^<]*</script>