Index: trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 15670)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 15671)
@@ -8,4 +8,6 @@
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -207,3 +209,15 @@
         return ds == null || !ds.isLocked();
     }
+
+    /**
+     * Splits a tag value by <a href="https://wiki.openstreetmap.org/wiki/Semi-colon_value_separator">semi-colon value separator</a>.
+     * Spaces around the ; are ignored.
+     *
+     * @param value the value to separate
+     * @return the separated values as Stream
+     * @since xxx
+     */
+    public static Stream<String> splitMultipleValues(String value) {
+        return Pattern.compile("\\s*;\\s*").splitAsStream(value);
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 15670)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 15671)
@@ -4,5 +4,4 @@
 import java.lang.reflect.Method;
 import java.text.MessageFormat;
-import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.Map;
@@ -173,5 +172,5 @@
         /** The reference is treated as a list separated by ';'. Spaces around the ; are ignored.
          *  The value needs to be equal one of the list elements. */
-        ONE_OF((test, prototype) -> Arrays.asList(test.split("\\s*;\\s*")).contains(prototype)),
+        ONE_OF((test, prototype) -> OsmUtils.splitMultipleValues(test).anyMatch(prototype::equals)),
         /** The value needs to begin with the reference string. */
         BEGINS_WITH(String::startsWith),
Index: trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java	(revision 15670)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java	(revision 15671)
@@ -4,4 +4,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.stream.Collectors;
 
 import org.junit.Rule;
@@ -40,3 +43,12 @@
         OsmUtils.createPrimitive("noway name=Foo");
     }
+
+    @Test
+    public void testSplitMultipleValues() {
+        // examples from https://wiki.openstreetmap.org/wiki/Semi-colon_value_separator
+        assertEquals(Arrays.asList("B500", "B550"), OsmUtils.splitMultipleValues("B500;B550").collect(Collectors.toList()));
+        assertEquals(Arrays.asList("B500", "B550"), OsmUtils.splitMultipleValues("B500 ; B550").collect(Collectors.toList()));
+        assertEquals(Arrays.asList("Tu-Fr 08:00-18:00", "Mo 09:00-18:00", "Sa 09:00-12:00", "closed Aug"),
+                OsmUtils.splitMultipleValues("Tu-Fr 08:00-18:00;Mo 09:00-18:00;Sa 09:00-12:00;closed Aug").collect(Collectors.toList()));
+    }
 }
