/* see #9757, #10869 - Better handling of semicolon in values */ *["addr:street" =~ /.+;(.+)?/], *[highway =~ /.+;(.+)?/], *[lanes =~ /.+;(.+)?/], *[maxspeed =~ /.+;(.+)?/], *[name =~ /.+;(.+)?/], *[surface =~ /.+;(.+)?/], *[water =~ /.+;(.+)?/] { throwWarning: tr("{0} with multiple values", "{0.key}"); } *[source =~ /^(;.*|.*;;.*|.*;)$/], *["source:addr" =~ /^(;.*|.*;;.*|.*;)$/], *["source:maxspeed" =~ /^(;.*|.*;;.*|.*;)$/], *["source:name" =~ /^(;.*|.*;;.*|.*;)$/], *["source:position" =~ /^(;.*|.*;;.*|.*;)$/], *["source:postcode" =~ /^(;.*|.*;;.*|.*;)$/], *[ref =~ /^(;.*|.*;;.*|.*;)$/], *[int_ref =~ /^(;.*|.*;;.*|.*;)$/], *[old_ref =~ /^(;.*|.*;;.*|.*;)$/], *[source_ref =~ /^(;.*|.*;;.*|.*;)$/], *[route_ref =~ /^(;.*|.*;;.*|.*;)$/], *[attribution =~ /^(;.*|.*;;.*|.*;)$/], *[name =~ /^(;.*|.*;;.*|.*;)$/], *[alt_name =~ /^(;.*|.*;;.*|.*;)$/], *[note =~ /^(;.*|.*;;.*|.*;)$/], *[fixme =~ /^(;.*|.*;;.*|.*;)$/], *["addr:housenumber" =~ /^(;.*|.*;;.*|.*;)$/], *[destination =~ /^(;.*|.*;;.*|.*;)$/], *[exit_to =~ /^(;.*|.*;;.*|.*;)$/], *[surface =~ /^(;.*|.*;;.*|.*;)$/], *["building:use" =~ /^(;.*|.*;;.*|.*;)$/], *[traffic_sign =~ /^(;.*|.*;;.*|.*;)$/], *[voltage =~ /^(;.*|.*;;.*|.*;)$/], *[cuisine =~ /^(;.*|.*;;.*|.*;)$/] { throwWarning: tr("empty value in semicolon-separated ''{0}''", "{0.key}"); assertMatch: "node ref=;A1"; assertMatch: "node ref=A1;"; assertMatch: "node ref=;"; assertMatch: "node ref=A1;;A2"; assertNoMatch: "node ref=A1"; assertNoMatch: "node ref=A1;A2"; }