Biblioteka regex dodaje do Hacker Lang
pelne wsparcie dla wyrazen regularnych w standardzie POSIX ERE
(dokladnie ta sama skladnia co grep -E / egrep / sed -E).
Dziala jako zwykla biblioteka .hl (main-lib) i jednoczesnie jako pakiet
instalowalny przez menedzer pakietow bit (bit install regex).
Skopiuj regex.hl do katalogu bibliotek Hacker Lang:
sudo cp regex.hl /usr/lib/HackerOS/Hacker-Lang/main-libs/regex.hli importuj w swoim skrypcie:
# <main/regex>Ta biblioteka jest przygotowana jako samodzielne repozytorium instalowalne
przez bit. Aby ja opublikowac:
-
Wrzuc zawartosc tego katalogu (a przynajmniej
regex.hl) do wlasnego repozytorium git, np.github.com/<uzytkownik>/hacker-lang-regex. -
Dodaj wpis do
bit-repo/repo-list.jsonw repozytoriumhttps://github.com/bit-io/repository(patrzbit-repo/repo-list-entry.jsonw tym katalogu — gotowy fragment do wklejenia). -
Kazdy uzytkownik
bitinstaluje biblioteke jednym poleceniem:
bit install regexbit sklonuje repozytorium do
~/.hackeros/hacker-lang/libs/regex/<commit>/ i podepnie symlink
current. W skrypcie .hl wystarczy wtedy:
<< ~/.hackeros/hacker-lang/libs/regex/current/regex.hlusing <gen 2>
<< regex.hl
% _regex_str = "2026-09-23"
% _regex_pattern = @REGEX_DATE_ISO
-- regex_match
? ok
::green To jest data ISO!
doneKazda funkcja czyta wejscie ze zmiennych regex* (konwencja identyczna
z main/str.hl) i zapisuje wynik do @_regex_result / @_regex_count,
albo konczy sie kodem wyjscia 0/1 dla funkcji logicznych.
| Funkcja | Opis |
|---|---|
|
|
|
jak wyzej, bez rozroznienia wielkosci liter |
|
caly |
|
tekst zaczyna sie od dopasowania wzorca |
|
tekst konczy sie dopasowaniem wzorca |
|
|
| Funkcja | Opis |
|---|---|
|
pierwsze dopasowanie → |
|
wszystkie dopasowania, po jednym w linii → |
|
liczba dopasowan → |
| Funkcja | Opis |
|---|---|
|
|
|
jak wyzej, ale wszystkie dopasowania ( |
W _regex_replacement mozna uzyc \1, \2… (grupy przechwycone we
wzorcu) oraz & (cale dopasowanie) — dokladnie jak w sed.
| Funkcja | Opis |
|---|---|
|
|
|
jak wyzej, plus |
| Funkcja | Opis |
|---|---|
|
|
| Funkcja | Opis |
|---|---|
|
ucieka metaznaki ERE w dowolnym tekscie → |
REGEX_DIGITS, REGEX_INT, REGEX_FLOAT, REGEX_ALPHA, REGEX_ALNUM,
REGEX_WORD, REGEX_WHITESPACE, REGEX_EMAIL, REGEX_URL,
REGEX_IPV4, REGEX_MAC_ADDR, REGEX_UUID, REGEX_DATE_ISO,
REGEX_TIME_24H, REGEX_HEX_COLOR, REGEX_SLUG.
-
Silnik to POSIX ERE (przez
grep -E/sed -E/gawk) — brak konstrukcji PCRE takich jak(?=…),\d,\b(poza GNU-owym\bktore dziala wgrep/sedGNU), non-greedy*?. -
Tak jak reszta bibliotek
main/*.hl(np.str.hl), wartosci sa wstawiane do polecenia powloki w apostrofach — nie umieszczaj w_regex_str/_regex_patternznaku apostrofu ('). Znaki `$ \ " ` ` sa bezpieczne. -
regex_splitwymagagawk(rozszerzenieRSjako regex to cecha GNU awk, nie POSIX awk/mawk) — zadeklarowane jako zaleznosc (// gawk).
-
tests/test_regex.hl— pakiet testow (hl run tests/test_regex.hl) -
examples/demo.hl— przyklad uzycia kazdej funkcji (hl run examples/demo.hl)