Archívum - Nov 13, 2020
regex YML file-ban, adatként
Hogy a ...ba lehet yml fájlba adatként írni speciális karaktereket tartalmazó sorokat?
Van egy fájlom, ami harminc-negyven python által feldolgozható regex-t tartalmazó sorból áll.
Szeretném áttenni az egészet egy yml formátumú konfig fájlba, de nem megy, mert a yaml parser hülyét kap tőle.
^... .. ..:..:.. \S+ nat: apply nat rules \(/tmp/nat_rules_ppp0_eth0\),
^... .. ..:..:.. \S+ rc_service: check_watchdog 269:notify_rc restart_watchdog$,
Ilyesmi adatok vannak benne.
Ilyet szeretnék:
host-neve:
filter:
- ^... .. ..:..:.. \S+ nat: apply nat rules \(/tmp/nat_rules_ppp0_eth0\)
- ^... .. ..:..:.. \S+ rc_service: check_watchdog 269:notify_rc restart_watchdog$
Amiből szeretném, ha kapnék egy tömböt, ami a host nevekből áll, amelynek vannak filter nevű tömb elemei, amelyek a fenti sorokat tartalmazzák:Amíg csak sima textfájlban tartom ezeket, addig semmi gond, de mivel teli vannak spec. karakterekkel, köztük aposztróf, idézőjel, backslash, kettőspont, mínusz jel...
Nem igazán tudom úgy formázni, hogy a yaml parser elfogadja.
Van valakinek ötlete?
Az egyik érzékeny pontja a :, de ezt sem \:, sem :: formában nem eszi meg.
Idézőjelbe és aposztrófok közé sem tehetem a teljes sort, akkor a \ miatt sír és a \\ sem jó neki.
■ Van egy fájlom, ami harminc-negyven python által feldolgozható regex-t tartalmazó sorból áll.
Szeretném áttenni az egészet egy yml formátumú konfig fájlba, de nem megy, mert a yaml parser hülyét kap tőle.
^... .. ..:..:.. \S+ nat: apply nat rules \(/tmp/nat_rules_ppp0_eth0\),
^... .. ..:..:.. \S+ rc_service: check_watchdog 269:notify_rc restart_watchdog$,
Ilyesmi adatok vannak benne.
Ilyet szeretnék:
host-neve:
filter:
- ^... .. ..:..:.. \S+ nat: apply nat rules \(/tmp/nat_rules_ppp0_eth0\)
- ^... .. ..:..:.. \S+ rc_service: check_watchdog 269:notify_rc restart_watchdog$
Amiből szeretném, ha kapnék egy tömböt, ami a host nevekből áll, amelynek vannak filter nevű tömb elemei, amelyek a fenti sorokat tartalmazzák:
eredmeny_tomb['host-neve']['filter'] = ['^... .. ..:..:.. \S+ nat: apply nat rules \(/tmp/nat_rules_ppp0_eth0\)','^... .. ..:..:.. \S+ rc_service: check_watchdog 269:notify_rc restart_watchdog$']
Nem igazán tudom úgy formázni, hogy a yaml parser elfogadja.
Van valakinek ötlete?
Az egyik érzékeny pontja a :, de ezt sem \:, sem :: formában nem eszi meg.
Idézőjelbe és aposztrófok közé sem tehetem a teljes sort, akkor a \ miatt sír és a \\ sem jó neki.