Esempio completo:
codice:
import java.io.*;
import java.util.regex.*;

public class ExtractScripts
{
    public static void main (String[] args)
    {
        if (args.length == 1)
        {
            try
            {
                String text = readFile (args[0]);

                String regex = "<SCRIPT.*?>(.*?)</SCRIPT>|" +   // Javascript/JScript/VBScript
                               "<\\?(?:php)?(.*?)\\?>";         // PHP

                Pattern pattern = Pattern.compile (regex, Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
                Matcher matcher = pattern.matcher (text);

                int number = 0;
                String script;

                while (matcher.find ())
                {
                    if ((script = matcher.group (1)) != null)
                    {
                        // trovato script Javascript/JScript/VBScript
                        number++;
                        System.out.println ("------ Script #" + number + " (Javascript/JScript/VBScript)");
                        System.out.println (script);
                        System.out.println ("");
                    }
                    else if ((script = matcher.group (2)) != null)
                    {
                        // trovato script PHP
                        number++;
                        System.out.println ("------ Script #" + number + " (PHP)");
                        System.out.println (script);
                        System.out.println ("");
                    }
                }
            }
            catch (Exception e)
            {
                System.out.println (e);
            }
        }
    }

    public static String readFile (String fileName)
        throws IOException
    {
        InputStreamReader isr = null;

        StringBuffer sb = new StringBuffer ();
        char[] buf = new char[1024];
        int len;

        try
        {
            FileInputStream fis = new FileInputStream (fileName);
            isr = new InputStreamReader (fis);

            while ((len = isr.read (buf)) > 0)
                sb.append (buf, 0, len);

            return sb.toString ();
        }
        finally
        {
            if (isr != null)
                isr.close ();
        }
    }
}