Python从正向前瞻中获取分组值

Python从正向前瞻中获取分组值,python,regex,Python,Regex,对于下面的正则表达式和输入,我能够获得组(1)匹配对象。但是如何从正向前瞻中获得匹配对象呢 正则表达式是:(\w+)(=\s*())(?:(?您的第一个语句如何从正向前瞻中获取匹配对象以及以后的语句有点混乱。假设您希望捕获索引名第一个以及剩余的列名、平台CD、系统名称、数据库名称、表名称、列名,您可以简化您的正则表达式并使用它来准备好你需要的一切 (?:\w+)(?=\s*(?:\(|,|\))) Python代码同样 import re line = 'PRIMARY INDEX FIRS

对于下面的正则表达式和输入,我能够获得组(1)匹配对象。但是如何从正向前瞻中获得匹配对象呢


正则表达式是:(\w+)(=\s*())(?:(?您的第一个语句如何从正向前瞻中获取匹配对象以及以后的语句有点混乱。假设您希望捕获索引名
第一个
以及剩余的列名、
平台CD、系统名称、数据库名称、表名称、列名
,您可以简化您的正则表达式并使用它来准备好你需要的一切

(?:\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']

让我知道这是否是你想要的。否则请更新你的帖子以澄清你的需求。

得到了正则表达式的答案:(\w+)(=\s*())(?:)你的答案很好。我在问题中提到的正则表达式正在对值进行分组,但我只能获取组(1)尽管还有其他匹配组。我们如何获取这些值?您对此有任何IDE吗?您的回答解决了我的问题,但我还是想知道
['FIRST_ONE', 'PLATFORM_CD', 'SYSTEM_NAME', 'DB_NAME', 'TABLE_NAME', 'COLUMN_NAME']
# -*- coding: utf-8 -*-

import re

regex = r"(\w+)(?=\s*\()|(?:(?<=,|\())\s*(\w+)\s*(?:\s*(\w+)\s*)?"
strVal = "PRIMARY INDEX FIRST_ONE ( PLATFORM_CD ,SYSTEM_NAME ,DB_NAME ,TABLE_NAME ,COLUMN_NAME );"

matches = re.finditer(regex, strVal)

for match in matches:
    for gCount in range(1, len(match.groups())+1):
        if match.group(gCount) != None:        
            print(match.group(gCount))