Я анализирую финансовые документы, и цель состоит в том, чтобы разбить строку на 3 компонента.Например, у меня есть следующая строка:
Telephone 9,000 9,000
, и когда я использую эту команду регулярного выражения:
regex = r"([A-Za-z ]+)(?=\d|\S).*?([\d,]+)\s([\d,]+)"
re.findall(regex, <string>)
, и это вывод, который я получаю:
('Telephone ', '5,172', '1,771')
Теперь предположим, что у меня есть отрицательные числа (они представлены в скобках в финансовых документах) в этом финансовом отчете:
string = Telephone (9,000) (9,000)
Как мне разбить его на три группы путем учета скобок?Я пытался использовать \(\*
и \)\*
для учета нуля или более скобок, но он возвращает None
:
regex = r"([A-Za-z ]+)(?=\d|\S).*?(\(\*[\d,]+\)\.)\s(\(\*[\d,]+\)\)"
re.findall(regex, string)
Как я могу обновить свою функцию регулярного выражения для учета этого случая?
Кроме того, если в строке есть дефис, как мне это узнать?
string = Telephone (9,000) -