亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Python從正面展望中獲取分組值

Python從正面展望中獲取分組值

RISEBY 2021-09-14 10:20:23
對于以下正則表達式和輸入,我能夠獲得 group(1) 匹配對象。但是如何從正面展望中獲取匹配對象?正則表達式是: (\w+)(?=\s*()|(?:(?<=,|())\s*(\w+)\s*(?:\s*(\w+)\s *)?輸入是:PRIMARY INDEX FIRST_ONE (PLATFORM_CD,SYSTEM_NAME,DB_NAME,TABLE_NAME,COLUMN_NAME);在此我能夠獲得索引名稱,即“FIRST_ONE”。我還需要獲取列名。怎么做?我試圖得到組(2)但它返回無我試過的代碼是:upiOrPiValue = re.search(r'(\w+)(?=\s*\()|(?:(?<=,|\())\s*(\w+)\s*(?:\s*(\w+)\s*)?',line)                print('line : ',line)                #print('---->',upiOrPiValue)                if upiOrPiValue == None:                    pass                else:                    PiorUpiName = upiOrPiValue.group(1)                    print('PiorUpiName : ',PiorUpiName)                    print('upiOrPiValue.group(2) : ',upiOrPiValue.group(2))upiOrPiValue.group(1) 正在返回“FIRST_ONE”值。如何獲取列名?
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

您的第一個聲明如何從正面展望和后面的聲明中獲取匹配對象有點令人困惑。假設您想要捕獲索引名稱FIRST_ONE和剩余的列名稱,PLATFORM_CD ,SYSTEM_NAME ,DB_NAME ,TABLE_NAME ,COLUMN_NAME您可以簡化您的正則表達式并使用它來捕獲您需要的所有內容。


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

相同的 Python 代碼,


import re

line = 'PRIMARY INDEX FIRST_ONE ( PLATFORM_CD ,SYSTEM_NAME ,DB_NAME ,TABLE_NAME ,COLUMN_NAME );'

arr = re.findall(r'(?:\w+)(?=\s*(?:\(|,|\)))', line)

print(arr)

哪個打印,


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

如果這就是您要找的,請告訴我。否則,請更新您的帖子以闡明您的需求。


查看完整回答
反對 回復 2021-09-14
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號