Regex Extraer números y decimalesTengo una columna y necesito extraer los números de las cadenas en cada fila. Los números pueden ser decimales o no.
Estoy usando esta fórmula: Regex( :PIPE_LENGTH, "[^(\d+\.\d+)]", "", globalreplace )
Ejemplos:
Cuerda: Longitud = 3.5".Completado por Juan.
Esperado: 3.5
Real: 3.5..
Ejemplo 2:
Completado para CEC. Profundidad de la tubería: 4,5" (MER)
Esperado: 4.5
Real: .4.5()
¿Por qué aparecen los puntos extra y los paréntesis? Además, estoy confundido por el ^ al principio. Cuando lo elimino, solo obtengo texto y no los números.
Gracias
Re: Extracción de números y decimales Regex¡Ay!
El explorador de texto usa este patrón para los números
([\-\+]? ?[\.,]?[0-9][\.,0-9]*( ?e ?[\-\+]? ?\d+)?)
leyéndolo de izquierda a derecha
- un + o - opcional
- un espacio opcional
- punto o coma opcional
- un dígito requerido
- cero o más puntos, comas y dígitos
- un exponente opcional (con partes y piezas opcionales dentro)
las comas y los puntos son intercambiables debido a los diferentes estándares en varios países sobre cómo se representan los decimales y los separadores de miles. Hay algunas cadenas extrañas que podrían pasar desapercibidas que no son números, por lo que debe escribir su código para esperar que la función num() pueda devolver un valor faltante.
Re: Extracción de números y decimales RegexPensé en otro caso: "Mark se cortó 0,5" de su dedo". ¡Estoy atascado! No puedo hacer que mi expresión regular funcione con este caso y los demás. ¡Es un juego de estuches o el otro!
Usando mirar hacia adelante...
Names Default to Here( 1 );
PIPE_LENGTH = "Length = 3.5\!". Completed by John.";
PIPE_LENGTH = "Completed for CEC. Pipe depth- 4.5\!" (MER)";
PIPE_LENGTH = "John cut 5\!"";
PIPE_LENGTH = "Mark cut .5\!" off his finger.";
Regex( PIPE_LENGTH, "\D*(?=\.)?(\d*\.?\d*)\D*", "\1" );
Me pregunto si usar JMP Patterns sería más fácil.
@Craige_Hales , ¿¿¿dónde estás???
Re: Extracción de números y decimales RegexPerfecto. Gracias por la ayuda rápida en un stumper para mí.Re: Extracción de números y decimales RegexRegex( PIPE_LENGTH, "\D*(\d+\.?\d*)\D*", "\1" );
Re: Extracción de números y decimales RegexEsta es mejor. Tengo un escenario como:
Juan cortó 5"
Esto no tiene decimales. Su ejemplo está volviendo en blanco.
Gracias
Re: Extracción de números y decimales RegexMira [^(\d+\.\d+)] selecciona todo excepto números, decimales y puntuación. que está reemplazando con "". Lo que queda son sus números decimales y puntuación (). Esta expresión se está comportando de la manera que espero. También lo probé en tu ejemplo y obtuve el mismo resultado.
Algo como esto funcionaría?
Regex( :PipeLength, "(\d+.\d+)", "\1" )
No estoy seguro de cómo se ve el resto de sus datos, pero esta expresión extrae solo los números y decimales que necesita. Funcionó en ambos ejemplos.