/ / Extrahovanie celých čísel z reťazca - vrátane záporných celých čísel - python, regex, list, celé číslo

Extrahovanie celých čísel z reťazca - vrátane negatívnych celkov - python, regex, list, integer

Snažil som sa extrahovať celé čísla nájdené v náhodne vygenerovaných reťazcoch tohto typu štruktúry;

string1 = "3x-2-44"

Úspešne sa mi podarilo vyplniť zoznam celými číslami nájdenými v reťazci;

L1 = (re.findall(r"d+", string1))

"L1" by obsahoval užitočný zoznam všetkých celých čísel, ale neukazuje, či je číslo záporné, napríklad pre "string1" by L1 obsahoval

[3,2,44]

a nie niečo ako:

[3,-2,-44]

Ako by bolo možné získať aj predchádzajúci znak celého čísla, aby sa zistilo, či je pozitívny alebo negatívny?

odpovede:

2 pre odpoveď č. 1

tvoj regex by mali byť ako:

>>> import re
>>> string1 = "3x-2-44"

#                v for matching zero or one occurrence of `-` in string
>>> re.findall("-?d+", string1)
["3", "-2", "-44"]

Na konverziu extrahovaných číselných reťazcov na int, môžete použiť map as:

>>> list(map(int, re.findall("-?d+", string1)))
[3, -2, -44]