【发布时间】:2015-04-17 20:43:11
【问题描述】:
我有 130,000 多个字符串,其中包含诸如 3/4"、1" 等测量值和诸如 5648 或 222 之类的门牌号,然后根据用户输入的感觉,将年份格式化为 02、92 或 2004那天。我也有 \ 和 - 在那里随机只是为了让它更有趣。
我需要的是:第一个测量值,即 3/4" 或 2" 和 02 年或 1997 年。我尝试了多次拆分和替换,但我似乎并没有走得太远。我在 " 处使用拆分提取了大部分测量值。任何帮助都会很好。有人建议使用正则表达式,但我从未使用过这些。
这里有一些例子:
3/4"-6235\PE-03,
1"-8018\ \PE-00,
3/4"- \ \PE-2004,
1"-11769\ \74\COPSET,
PE-85,
1"-BLDG 1,
COMM CABLE
这是我目前拥有的。
for featureToTotal in featuresToTotal:
id = id + 1
# Get each Water Type Time Total
try:
ValueOne = featureToTotal[1]
tmpvalue = ValueOne.replace("\\", "")
tmpvalue = tmpvalue.replace("-", " ")
tmpvalue = tmpvalue.replace("'", " ")
newValue = tmpvalue.decode('string_escape')
splitOne = newValue.split('\\')[0]
Split2 = splitOne.split('-')[0]
trysplit = Split2.split('"')[0]
#Test for Number
try:
num = trysplit[:1]
float(num)
strval = str(trysplit)
trysplit = strval
#featureToTotal[4] = strval
#arcpy.AddMessage(str(trysplit))
#featuresToTotal.updateRow(featureToTotal)
except:
errstrr = "yep"
#print "Nope" + ValueOne + " " + trysplit
buildqury = "INSERT INTO Annos VALUES(" + str(id) + ", ''" + newValue + "'', ''" + trysplit+ "'', ''" + YearTest + "'')"
cur.execute(buildqury)
except:
strerr = sys.exc_value.message
print "Error Splitting "
【问题讨论】:
-
向我们展示您的尝试。你的分裂方式可能有问题。
-
PE-85代表1985年安装的聚乙烯管