我在SQLite表中有一些数据,例如
111222_abc
def_333444
556789_hij
123456XY
789123ZZB
我想要的是一对只包含数字和字母的列,例如:
Col 1 Col 2
111222 abc
333444 def
556789 hij
123456 XY
789123 ZZB
尝试过REGEX选择,但似乎不起作用,结果我只得到“ 1”或“ 0”。对/错?
答案 0 :(得分:0)
好吧,经过大量的搜索等等,我最终使用Python进行了整理:con是一个sqlite连接。
with con:
cur = con.cursor()
cur.execute('SELECT * FROM Table')
rows = cur.fetchall()
n=1
for row in rows:
# print (row)
ID_Init=row[1]
ID_Check=row[2]
if ID_Init:
temp=""
ID_Base=re.findall(r'\d{6}',ID_Init)
temp=''.join(ID_Base)
ID_Base=temp
temp=""
ID_Extn=re.findall(r'[a-zA-Z]+',ID_Init)
temp=''.join(ID_Extn)
ID_Extn=temp
else:
if ID_Check:
temp=""
ID_Base=re.findall(r'\d+',ID_Check)
temp=''.join(ID_Base)
ID_Base=temp
else:
ID_Base="NONE"
ID_Extn="NONE"
cur.execute('''UPDATE Table SET ID_Base=?, ID_Extn=? WHERE rowid==?''',(ID_Base, ID_Extn, n))
n += 1
这可能不是我想要做的最好的方法,但是它行得通,我对结果感到满意。最初的问题没有具体说明;但是当数字在正确的列中时,它们始终以6为一组。
我添加了第二项检查,其中数字可能在描述列中,并且它们之间有多余的字符。
注意:这会非常快速地处理我的10,000个奇数行。