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 ();
}
}
}