<p>我想分享我最终使用的解决方案,以防其他人受益。有一个混合正则表达式在那里,但我用芬德尔而不是分裂。现在我已经到了这一步,我必须进一步研究控制输出。数据被转储到3个字段(从\节点、到\节点、链接)。我需要第一个“To\u Node”的值变成下一行“from\u Node”的值,依此类推。想象点沿着一条线,点a到B,然后点B到C,然后点C到D,等等。。。。以我有限的知识,我甚至不知道从哪里开始寻找这个解决方案。有什么想法吗?你知道吗</p>
<pre><code>import re, arcpy
# Local variables:
Table1 = "D:\Database1.mdb\\Table1"
RAW_Data = "D:\Database1.mdb\RAW_Data"
#Create Cursors and Insert Rows
insertcursor = arcpy.da.InsertCursor(Table1, ["From_Node", "To_Node", "Link"])
with arcpy.da.SearchCursor(RAW_Data, ["Field1", "Field1", "Field1"]) as searchcursor:
try:
for row in searchcursor:
listFrom_Node = re.findall('\w+(?=\*\s*)', row[0]) #From Node
print listFrom_Node
print "From Node List Success"
listTo_Node = re.findall('\w+(?=\*\s*)', row[1]) #To Node
print listTo_Node
print "To Node List Success"
listLink = re.findall('\(\((.*?)\)\)', row[2]) #Link descriptions
print listLink
print "Link List Success"
for n,Value in enumerate(listFrom_Node):
insertcursor.insertRow((listFrom_Node[n], listTo_Node[n], listLink[n]))
except:
print ('Empty Cursor')
</code></pre>