/ / ¿Cómo detectar si una cadena tiene letras al principio usando scala funcs o regex? - regex, scala

¿Cómo detectar si una cadena tiene letras al principio usando los funcs scala o regex? - regex, scala

Tengo un número de cadena que podría y podría no tener 2 o más caracteres al principio del número, y tal vez algunos caracteres que no sean letras o números.

Si son dos o más al principio, elimine los 2 primeros y limpie la cadena de caracteres que no sean letras o números.

Quiero detectar eso usando scala funcs o regex y limpiar esta cadena.

ejemplos:

"ABC12345" (después de la función) => "C12345"

"AB12345" (después de la función) => "12345"

"A12345" (después de la función) => "A12345"

"ABC1 23 +.4 5" (después de la función) => "C12345"

Respuestas

1 para la respuesta № 1

Regex coincide con los caracteres que desea eliminar:

^[A-Z]{2}|[^A-Z0-9]

Coincide exactamente con dos letras al comienzo de la cadena o cualquier otra cosa que no sea [A-Z0-9].

Uso en Scala:

scala> val regex = """^[A-Z]{2}|[^A-Z0-9]""".r
regex: scala.util.matching.Regex = ^[A-Z]{2}|[^A-Z0-9]

scala> val ss = List("ABC12345", "A12345", "ABC1 23 +.4 5")
ss: List[String] = List(ABC12345, A12345, ABC1 23 +.4 5)

scala> ss.map(s => regex.replaceAllIn(s, ""))
res0: List[String] = List(C12345, A12345, C12345)