Wie überprüft man, ob ein String in Scala vollständig mit einem Regex übereinstimmt?
Angenommen ich habe eine Regex-Muster, die ich will passen viele Saiten.
val Digit = """\d""".r
Ich will einfach nur, um zu überprüfen, ob eine gegebene Zeichenkette vollständig entspricht der Regex. Was ist eine gute und idiomatischer Weg, dies zu tun in Scala?
Weiß ich, dass ich pattern match auf Regexes, aber das ist syntaktisch nicht sehr erfreulich, in diesem Fall, denn ich habe keine Gruppen extrahieren:
scala> "5" match { case Digit() => true case _ => false }
res4: Boolean = true
Oder könnte ich zurückgreifen, um die zugrunde liegende Java-Muster:
scala> Digit.pattern.matcher("5").matches
res6: Boolean = true
ist nicht elegant, entweder.
Gibt es eine bessere Lösung?
InformationsquelleAutor der Frage mkneissl | 2010-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beantwortung meiner eigenen Frage werde ich das "pimp my library pattern"
und verwenden Sie es wie diese
es sei denn, jemand kommt mit einer besseren (standard -) Lösung.
Hinweise
Ich habe nicht pimp
String
zu begrenzen den Bereich der möglichen Nebenwirkungen.unapplySeq
Lesen nicht sehr gut in diesem Zusammenhang.InformationsquelleAutor der Antwort mkneissl
Ich weiß nicht, Scala alle, die gut, aber es sieht aus wie können Sie nur:
Referenzen
InformationsquelleAutor der Antwort polygenelubricants
Für das volle Spiel, die Sie verwenden können unapplySeq. Diese Methode versucht, auf den Gegner (im ganzen Spiel) und gibt die Spiele.
InformationsquelleAutor der Antwort Vasil Remeniuk
InformationsquelleAutor der Antwort Jack
Die Antwort ist in der regex:
Dann verwenden Sie eine der vorhandenen Methoden.
InformationsquelleAutor der Antwort Daniel C. Sobral
Verwendung von Standard-Scala-Bibliothek und eine vorkompilierte regex-pattern und pattern-matching (die scala Stand der Technik):
mehr Lesen: http://www.scala-lang.org/api/2.12.1/scala/util/matching/index.html
InformationsquelleAutor der Antwort Sven