Articles of pattern matching

Expresión regular para unir 3 o más caracteres secuenciales consecutivos y caracteres idénticos consecutivos

Necesito expresiones regulares para que coincida con los casos a continuación. 3 o más caracteres / números secuenciales consecutivos; por ejemplo, 123, abc, 789, pqr, etc. 3 o más caracteres / números idénticos consecutivos; por ejemplo, 111, aaa, bbb, 222, etc.

¿Cómo se empareja el patrón usando expresiones regulares en Scala?

Me gustaría poder encontrar una coincidencia entre la primera letra de una palabra y una de las letras de un grupo como “ABC”. En pseudocódigo, esto podría ser algo así como: case Process(word) => word.firstLetter match { case([ac][AC]) => case _ => } } ¿Pero cómo agarro la primera letra en Scala en vez de […]

¿Cuál es el uso del método Pattern.quote?

Estoy tratando de entender Pattern.quote usando el siguiente código: String pattern = Pattern.quote(“1252343% 8 567 hdfg gf^$545”); System.out.println(“Pattern is : “+pattern); produce la salida: Pattern is : \Q1252343% 8 567 hdfg gf^$545\E ¿Qué son \Q y \E aquí? La descripción de la documentación dice: Devuelve una String patrón literal para la String especificada. Este método […]

¿Cómo coinciden los patrones en el tipo genérico en Scala?

Supongamos que tenemos un Container clase genérico: case class Container[+A](value: A) Entonces queremos que el patrón coincida con un Container con un Double y un Container de Any : val double = Container(3.3) var container: Container[Any] = double Para hacer esto, normalmente escribiríamos: container match { case c: Container[String] => println(c.value.toUpperCase) case c: Container[Double] => […]

Cómo anular la aplicación en un compañero de clase de caso

Entonces esta es la situación. Quiero definir una clase de caso así: case class A(val s: String) y quiero definir un objeto para garantizar que cuando creo instancias de la clase, el valor para ‘s’ siempre sea mayúscula, así: object A { def apply(s: String) = new A(s.toUpperCase) } Sin embargo, esto no funciona, ya […]

Encontrar el prefijo común de las cadenas

Estoy teniendo 4 cadenas: “h:/a/b/c” “h:/a/b/d” “h:/a/b/e” “h:/a/c” Quiero encontrar el prefijo común para esas cadenas, es decir, “h:/a” . ¿Cómo encontrar eso? Por lo general, dividía la cadena con el delimitador ‘/’ y lo colocaba en otra lista, y así sucesivamente. ¿Hay alguna forma mejor de hacerlo?

Cómo encontrar una palabra completa en una cadena en Java

Tengo una cadena que tengo que analizar para diferentes palabras clave. Por ejemplo, tengo el String: “Vendré a encontrarte a los 123woods” Y mis palabras clave son ‘123woods’ ‘maderas’ Debería informar siempre que tenga un partido y dónde. Múltiples ocurrencias también deben ser contabilizadas. Sin embargo, para este, debería conseguir un partido solo en 123woods, […]

Igualdad de clase de caso en Apache Spark

¿Por qué la coincidencia de patrones en Spark no funciona igual que en Scala? Vea el siguiente ejemplo … la función f() intenta coincidir con el patrón en la clase, que funciona en Scala REPL pero falla en Spark y da como resultado todo “???”. f2() es una solución que obtiene el resultado deseado en […]

Expresión regular para coincidir con el número de teléfono estándar de 10 dígitos

Quiero escribir una expresión regular para un número de teléfono tipo estadounidense estándar que admita los siguientes formatos: ###-###-#### (###) ###-#### ### ### #### ###.###.#### donde # significa cualquier número. Hasta ahora se me ocurrieron las siguientes expresiones ^[1-9]\d{2}-\d{3}-\d{4} ^\(\d{3}\)\s\d{3}-\d{4} ^[1-9]\d{2}\s\d{3}\s\d{4} ^[1-9]\d{2}\.\d{3}\.\d{4} respectivamente. No estoy seguro de si el último es correcto para el cheque […]

Patrón Regex para que coincida con al menos 1 número y 1 carácter en una cadena

Tengo una expresión regular /^([a-zA-Z0-9]+)$/ esto solo permite caracteres alfanuméricos, pero también si solo inserto número (s) o solo carácter (s), entonces también lo acepta. Quiero que funcione como si el campo solo aceptara valores alfanuméricos, pero el valor debe contener al menos 1 carácter y 1 número.