diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 94ca49bf..2b5cb3e1 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -457,7 +457,7 @@ public final class BahnProvider implements NetworkProvider + "(\\d{1,2}:\\d{2})" // time + "(?: (?:(pünktl\\.)|ca. \\+(\\d+)))?" // ontime, delay + "(?: k\\.A\\.)?" // - + "(?:, ([^<]*))?" // message + + "(?:, ([^<]*))*" // messages FIXME + "(?:(?:, )?(?:heute )?(Gl\\. " + ParserUtils.P_PLATFORM + ")(?:\\s*)?)?" // position + "(?:,
]*>[^<]*)?" // (ersatzzug message) + "(?:,
[^<]*]*>[^<]*)?" // (ersatzzug message) diff --git a/test/de/schildbach/pte/BahnProviderTest.java b/test/de/schildbach/pte/BahnProviderTest.java index 786f9722..a4190c88 100644 --- a/test/de/schildbach/pte/BahnProviderTest.java +++ b/test/de/schildbach/pte/BahnProviderTest.java @@ -136,7 +136,23 @@ public class BahnProviderTest } @Test - public void departureWithMultipleMessages() + public void departureWithErsatzzugMessage() + { + final Matcher m = assertFineDepartures("" // + + "\n" // + + "RB 93328\n" // + + "\n" // + + ">>\n" // + + "München Hbf Gl.27-36\n" // + + "
\n" // + + "14:49 pünktl., Gl. 1,
Ersatzzug fürRB 5416"); + + assertNotNull(m.group(4)); // onTime + assertNotNull(m.group(7)); // position + } + + @Test + public void departureWithMessageAndErsatzzugMessage() { final Matcher m = assertFineDepartures("" // + "\n" // @@ -167,18 +183,19 @@ public class BahnProviderTest } @Test - public void departureWithErsatzzugMessage() + public void departureWithMultipleMessages() { - final Matcher m = assertFineDepartures("" // - + "\n" // - + "RB 93328\n" // + final Matcher m = assertFineDepartures(""// + + "\n" // + + "S 11\n" // + "\n" // + ">>\n" // - + "München Hbf Gl.27-36\n" // + + "Bergisch Gladbach\n" // + "
\n" // - + "14:49 pünktl., Gl. 1,
Ersatzzug fürRB 5416"); + + "10:59 pünktl., Änderung im Zuglauf!, Fährt heute nur bis Köln-Dellbrück, Gl. 1"); assertNotNull(m.group(4)); // onTime + assertNotNull(m.group(6)); // message assertNotNull(m.group(7)); // position }