First time ever using regular expressions and can\'t get it working although there\'s quite a few examples in stackoverflow already.
How can I extract integers which are
If you need to fail the match in [ +-34 ] (i.e. if you needn't extract a negative number if there is a + before it) you will need to use
\[\s*(?:\+|(-))?(\d+)\s*]
and when getting a match, concat the Group 1 and Group 2 values. See this regex demo.
Details
\[ - a [ char\s* - 0+ whitespaces\+? - an optional + char(-?\d+) - Capturing group 1 (the actual output of re.findall): an optional - and 1+ digits\s* - 0+ whitespaces] - a ] char.In Python,
import re
text = "dijdi[d43] d5[55++][ 43] [+32]dm dij [ -99]x"
numbers_text = [f"{x}{y}" for x, y in re.findall(r'\[\s*(?:\+|(-))?(\d+)\s*]', text)]
numbers = list(map(int, numbers_text))
# => [43, 32, -99] for both