第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Regex 獲取索引名和列名

Python Regex 獲取索引名和列名

慕勒3428872 2021-09-11 21:03:05
對于以下每個輸入行,我需要獲取索引名稱和列名稱。PRIMARY INDEX FIRST_ONE ( PLATFORM_CD ,SYSTEM_NAME ,DB_NAME ,TABLE_NAME ,COLUMN_NAME );) PRIMARY INDEX SECOND_ONE ( Hq_Id);PRIMARY INDEX THIRD_ONE ( DB_NAME ,BU_NAME );PRIMARY INDEX FOURTH_ONE ( DB_NAME ,TABLE_NAME ,COLUMN_NAME,  PII_CD);UNIQUE PRIMARY INDEX FIFT_ONE( DB_NAME,PRIMARY_SYSTEM_NAME);例如對于第一行我需要得到的輸入:index name : FIRST_ONEcolumn1 : PLATFORM_CDcolumn2 : SYSTEM_NAMEcolumn3 : DB_NAMEcolumn4 : TABLE_NAMEcolumn5 : COLUMN_NAME我編寫的正則表達式能夠選擇列名。正則表達式是:(?:(?<=,|\())\s*(\w+)\s*(?:\s*(\w+)\s*)?我應(yīng)該做哪些更改才能獲取索引名稱?任何人都可以建議一個正則表達式。我是正則表達式的初學(xué)者。正則表達式需要為我提供的每種輸入格式提供輸出。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

除了正則表達式,您還可以使用sqlparse并拆分字符串:


import sqlparse

stmts = """PRIMARY INDEX FIRST_ONE ( PLATFORM_CD ,SYSTEM_NAME ,DB_NAME ,

TABLE_NAME ,COLUMN_NAME );

) PRIMARY INDEX SECOND_ONE ( Hq_Id);

PRIMARY INDEX THIRD_ONE ( DB_NAME ,BU_NAME );

PRIMARY INDEX FOURTH_ONE ( DB_NAME ,TABLE_NAME ,COLUMN_NAME,  PII_CD);

UNIQUE PRIMARY INDEX FIFT_ONE( DB_NAME,PRIMARY_SYSTEM_NAME);"""


for stmt in sqlparse.split(stmts):

    res = sqlparse.parse(stmt)   # parses each statement

    for tok in (res[0].tokens):  # iterate all tokens

        if isinstance(tok, sqlparse.sql.Function):

            idx, columns = str(tok).split('(')

            cols = [c.strip() for c in columns[:columns.find(')')].split(',')]

            print (idx.strip(),  cols)

返回:


FIRST_ONE ['PLATFORM_CD', 'SYSTEM_NAME', 'DB_NAME', 'TABLE_NAME', 'COLUMN_NAME']

SECOND_ONE ['Hq_Id']

THIRD_ONE ['DB_NAME', 'BU_NAME']

FOURTH_ONE ['DB_NAME', 'TABLE_NAME', 'COLUMN_NAME', 'PII_CD']

FIFT_ONE ['DB_NAME', 'PRIMARY_SYSTEM_NAME']


查看完整回答
反對 回復(fù) 2021-09-11
?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

splash58 提到的正則表達式有效..

\w+(?=\s*()|(?:(?<=,|())\s*(\w+)\s*(?:\s*(\w+)\s*)?


查看完整回答
反對 回復(fù) 2021-09-11
  • 3 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號