diff --git a/src/de/schildbach/pte/SbbProvider.java b/src/de/schildbach/pte/SbbProvider.java
index d76c44cc..09833dbd 100644
--- a/src/de/schildbach/pte/SbbProvider.java
+++ b/src/de/schildbach/pte/SbbProvider.java
@@ -223,7 +223,7 @@ public class SbbProvider implements NetworkProvider
+ "([^\n<]*?)<.*?" // departure
+ "
]*>\n(?:.., (\\d{2}\\.\\d{2}\\.\\d{2})\n)? | .*?" // departureDate
+ "]*>(?:(\\d{2}:\\d{2})| ) | .*?" // departureTime
- + "]*>\\s*(.+?)?\\s* | .*?" // departurePosition
+ + "]*>\n(?:]*>\n)?(.+?)?\\s*(?: ]*>\n\n)? | .*?" // departurePosition
+ "
\\s*(.*?)\\s*|" // line
+ "\n(\\d+) Min\\.).*?" // min
@@ -232,7 +232,7 @@ public class SbbProvider implements NetworkProvider
+ "([^\n<]*?)<.*?" // arrival
+ "]*>\n(?:.., (\\d{2}\\.\\d{2}\\.\\d{2})\n)? | .*?" // arrivalDate
+ "]*>(?:(\\d{2}:\\d{2})| ) | .*?" // arrivalTime
- + "]*>\\s*(.+?)?\\s* | .*?" // arrivalPosition
+ + "]*>\n(?:]*>\n)?(.+?)?\\s*(?: ]*>\n\n)? | .*?" // arrivalPosition
, Pattern.DOTALL);
private QueryConnectionsResult queryConnections(final String uri, final CharSequence page) throws IOException
diff --git a/test/de/schildbach/pte/SbbProviderTest.java b/test/de/schildbach/pte/SbbProviderTest.java
index 31f6dff8..f80e09a1 100644
--- a/test/de/schildbach/pte/SbbProviderTest.java
+++ b/test/de/schildbach/pte/SbbProviderTest.java
@@ -17,8 +17,8 @@
package de.schildbach.pte;
-import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
import java.util.regex.Matcher;
@@ -113,6 +113,51 @@ public class SbbProviderTest
+ "");
}
+ @Test
+ public void tripWithPrognosisInPosition()
+ {
+ assertFineConnectionDetails("\n" //
+ + "\n" //
+ + " \n" //
+ + " | \n" //
+ + "\n" //
+ + "Spiez | \n" //
+ + "\n" //
+ + " | \n" //
+ + "ab | 15:54 | \n" //
+ + "4 \n" //
+ + " | \n" //
+ + "\n" //
+ + " \n" //
+ + "\n" //
+ + "IC 1080\n" //
+ + "\n" //
+ + " | \n" //
+ + "\n" //
+ + "\n" //
+ + " \n" //
+ + "1.  \n" //
+ + " \n" //
+ + " \n" //
+ + "2.  \n" //
+ + " \n" //
+ + " \n" //
+ + " | \n" //
+ + "\n" //
+ + "\n" //
+ + " | \n" //
+ + "\n" //
+ + "Basel SBB | \n" //
+ + "\n" //
+ + " | \n" //
+ + "an | 17:32 | \n" //
+ + "\n" //
+ + "12 \n" //
+ + "\n" //
+ + " | ");
+ }
+
@Test
public void footwayFromStationToStation()
{
@@ -197,6 +242,8 @@ public class SbbProviderTest
// ParserUtils.printGroups(m);
assertNotNull(m.group(2)); // departure
+ assertTrue(m.group(5) == null || m.group(5).length() < 10); // departurePosition
assertNotNull(m.group(10)); // arrival
+ assertTrue(m.group(13) == null || m.group(13).length() < 10); // arrivalPosition
}
}