Ваш первый оператор как получить объекты совпадения из позитивного взгляда в будущее и более поздние операторы немного сбивают с толку.Предполагая, что вы хотите захватить индексное имя 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']
Дайте мне знать, если это то, что вы искали.В противном случае, пожалуйста, обновите ваш пост, чтобы уточнить ваши потребности.