返回两个下划线之间的字符

che*_*ree 7 string substring arcmap python-2.7 arcpy

我想提取两个下划线之间的字符串。“_”之间和两侧的字符数量会有所不同,但只会有两个下划线。带下划线的长字段是文本字段,要填写的字段是短整数。我已经能够解析下划线之前和之后的字符并填充要素类中的其他字段,但无法将中间部分放入新字段中。

示例1:102_1204_234324

我想返回“1204”

示例2:324423_1_342

我想返回“1”

我尝试了多种变体,我认为应该有效的一种是:

# 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", "")
Run Code Online (Sandbox Code Playgroud)

我认为会创建一个列表,然后返回列表中的每个第二个元素。然而要填写的字段(testField)仍然是空的。

谢谢-阿尔

ksu*_*sun 7

    print "my_test_string".split('_')[1]
Run Code Online (Sandbox Code Playgroud)

将输出“测试”