Expresiones regulares para la distancia en el sistema métrico
Pregunta
Quiero un RegEx
para que coincida con los valores de distancia en el sistema métrico. Esta expresión regular debe coincidir con 12m
, 100cm
, 1km
ignorando espacios en blanco
Solución
Y para extender la respuesta de Pablo a incluir valores decimal ...
(\d+).?(\d*)\s*(m|cm|km)
Otros consejos
Prueba esto:
(?:0|[1-9]\d*)\s*(?:da|[yzafpnμmcdhkMGTPEZY])?m
Como no se ha especificado exactamente lo que quería, he utilizado sus ejemplos para derivar que desea encontrar un valor entero, seguido de espacio en blanco opcional, seguido de una unidad de especificador cm, mo km. Por lo tanto - este es el ejemplo más simple de que
./(\d+)\s*(m|cm|km)/
Los primeros paréntesis, captura el número, entonces se salta 0-muchos caracteres de espacio en blanco antes de capturar sus unidades requeridas en el segundo conjunto de paréntesis.
Como se puede ver en otras respuestas, se puede ir más allá de este para recoger valores decimales, y también captar un mayor número de unidad SI prefijos también.