6 votos

¿Cómo borrar la última parte de una cadena a partir del primer carácter no numérico?

Estoy buscando una sentencia Python o VB para eliminar la última parte de una cadena, comenzando donde aparece el 1er carácter no numérico, utilizando la Calculadora de Campo en ArcMap 10. He aquí un ejemplo de lo que estoy buscando:

enter image description here

¿Es posible?

0 votos

No es algo en lo que tenga mucha experiencia, pero parece un problema de tipo expresión regular. Echa un vistazo a este sitio web.

1 votos

A pesar de ser utilizado en el Parser Python de la Calculadora de Campo de ArcGIS for Desktop, esto parece una pregunta puramente Python que sería mejor investigar/preguntar en StackOverflow.com.

6voto

john Puntos 11

Aquí lo tienes. Utiliza Python como analizador sintáctico y muestra Codeblock.

Introdúzcalo en la casilla superior Código de guión pre-lógico:

def getints(field):

    integers = []
    for char in field:
        try:        
            value = int(char)
            integers.append(str(value))
        except ValueError:
            break

    return "".join(integers)

Y pon esto en la casilla inferior:

getints(!YOURFIELD!)

0 votos

@AntonioH ¡Impresionante!

0 votos

¿Cómo debería editar este código python si quisiera "extraer" todos los números consecutivos? Por ejemplo Cadena original: "ADD. 420-" Cadena final: "420". Gracias.

0 votos

@AntonioH Querrás usar el método 'isdigit() '. Estoy en mi teléfono, pero voy a tratar de mostrar un ejemplo mañana.

4voto

Aaron Puntos 25882

He aquí un método de calculadora de campo que incorpora itertools.takewhile . Mientras que la solución de ian escribe los nuevos valores en un campo de texto, ésta es adecuada para escribir en un campo numérico.

import itertools

def convert(x):
  try:
    return int("".join(itertools.takewhile(str.isdigit, str(x))))
  except:
    pass

convert(!OriginalString!)

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X