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ď č. 1tvoj 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]