Frage

Ich möchte eine Zeichenfolge zwischen zwei Unterstrichen extrahieren.Die Anzahl der Zeichen zwischen und auf jeder Seite des „_“ variiert, es werden jedoch immer nur zwei Unterstriche verwendet.Das lange Feld mit Unterstrichen ist ein Textfeld, das auszufüllende Feld ist eine kurze Ganzzahl.Ich konnte die Zeichen vor und nach den Unterstrichen analysieren und andere Felder in der Feature-Class ausfüllen, konnte den Mittelteil jedoch nicht in einem neuen Feld platzieren.

Beispiel 1:102_1204_234324

Ich möchte „1204“ zurückgeben.

Beispiel 2:324423_1_342

Ich möchte '1' zurückgeben

Ich habe eine Reihe von Varianten ausprobiert und die eine, die meiner Meinung nach funktionieren sollte, ist:

# Import system modules
import arcpy
#from arcpy import env

# Set environment settings
arcpy.env.workspace = "c:/temp/testing.gdb"

# Set local variables
inFeatures = "testFeature"
fieldName = "testField"
expression = "!parse_field!.split('_')[1::2]"

# Execute CalculateField 
arcpy.CalculateField_management(inFeatures, fieldName, expression, "PYTHON", "")

Was meiner Meinung nach eine Liste erstellen und dann jedes zweite Element der Liste zurückgeben würde.Allerdings ist das auszufüllende Feld (testField) noch leer.

Danke -al

War es hilfreich?

Lösung

generasacodicetagpre.

Ausgabe "Test"

Andere Tipps

Ich glaube, du willst ein Regex:

import re
m = re.search('_.+_', 'goodbye_cruel_world')
m.group(0) # returns '_cruel_'

Aber warten Sie, wir können es besser machen!Die folgende Regex Verwendet 'look(ahead|behind)s' die Unterstriche wegzulassen, und so bleiben Sie bei dem, was wichtig ist: (?<=_).+(?=_)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top