Я пытаюсь найти целые числа в скобках в строке, используя регулярное выражение python. Правило состоит в том, что между числом и скобками может быть пробел, но нет другого символа, кроме тех, которые составляют целое число. Вот мой код:
import re
a = " afd [asd] [12 ] [a34] [ -43 ]tt [+12]xxx"
b = " afd [asd] [12 ] [a34] [ -43 ]tt [+12]xxx!"
c = " afd [128+] [47 ] [a34] [ +-43 ]tt [+12]xxx"
from_a = re.findall(r'\[[\s+]*(-?\d+)\s*\]',a)
from_b = re.findall(r'\[[\s+]*(-?\d+)\s*\]',b)
from_c = re.findall(r'\[[\s+]*(-?\d+)\s*\]',c)
Это конкретное регулярное выражение работает для строк a и b и дает требуемый вывод. Однако в строке c, когда после двух скобок '[' или пробела следует два (+ или -) знака, регулярное выражение должно игнорировать это целое число.
РЕДАКТИРОВАТЬ
expected results
from_a = [12,-43,12]
from_b = [12,-43,12]
from_c = [47,12]