Kom ihåg att regexp ibland kan vara helt fel sätt för att parsa data, men här kommer ett exempel (skrivet i Java SE)
PHP:
import java.net.URL;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Friskis {
public static void main(String[] args) throws Exception {
URL page = new URL("http://schema.sthlm.friskissvettis.se/index.php?func=la");
Scanner scanner = new Scanner(page.openStream());
//Hämta alla "stycken du är intresserad av..
Pattern pattern = Pattern.compile("<tr id=\"ro_.*?</tr>", Pattern.MULTILINE | Pattern.DOTALL);
String match = null;
while ((match = scanner.findWithinHorizon(pattern, 0)) != null) {
//"Parsa" varje stycke
parseSection(match);
}
}
static Pattern COLUMNS = Pattern.compile(
"<td class=\"sort_col1\">([^<]+)</td>[^<]+" +
"<td class=\"sort_col2\">([^<]+)</td>[^<]+" +
"<td class=\"sort_col3\">([^<]+)</td>[^<]+" +
"<td class=\"sort_col4\">([^<]+)</td>");
private static void parseSection(String section) {
Matcher matcher = COLUMNS.matcher(section);
if (matcher.find()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
System.out.println(matcher.group(4));
System.out.println("");
}
}
}
Fick använda php-code-tag istället för code, verkar vara en bugg som gör att jag inte kan använda code-tag runt min källkod.