Skip to content
bit-ioPublic

About

Regex library for bit.io. Written in Hacker Lang.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

regex — biblioteka wyrazen regularnych dla Hacker Lang

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).

Instalacja

Opcja A — jako biblioteka glowna (main-lib)

Skopiuj regex.hl do katalogu bibliotek Hacker Lang:

sudo cp regex.hl /usr/lib/HackerOS/Hacker-Lang/main-libs/regex.hl

i importuj w swoim skrypcie:

# <main/regex>

Opcja B — import bezposredni pliku

<< regex.hl

Opcja C — przez bit (bit.io)

Ta biblioteka jest przygotowana jako samodzielne repozytorium instalowalne przez bit. Aby ja opublikowac:

  1. Wrzuc zawartosc tego katalogu (a przynajmniej regex.hl) do wlasnego repozytorium git, np. github.com/<uzytkownik>/hacker-lang-regex.

  2. Dodaj wpis do bit-repo/repo-list.json w repozytorium https://github.com/bit-io/repository (patrz bit-repo/repo-list-entry.json w tym katalogu — gotowy fragment do wklejenia).

  3. Kazdy uzytkownik bit instaluje biblioteke jednym poleceniem:

bit install regex

bit 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.hl

Szybki start

using <gen 2>
<< regex.hl

% _regex_str     = "2026-09-23"
% _regex_pattern = @REGEX_DATE_ISO
-- regex_match
? ok
    ::green To jest data ISO!
done

Referencja funkcji

Kazda 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.

Dopasowanie (boolean — sprawdzaj przez ? ok / ? err)

Funkcja Opis

regex_match

_regex_str, _regex_pattern → dopasowanie gdziekolwiek w tekscie

regex_match_i

jak wyzej, bez rozroznienia wielkosci liter

regex_full_match

caly _regex_str musi w calosci pasowac do wzorca

regex_starts_with

tekst zaczyna sie od dopasowania wzorca

regex_ends_with

tekst konczy sie dopasowaniem wzorca

regex_valid

_regex_pattern jest poprawnym skladniowo ERE

Wyszukiwanie

Funkcja Opis

regex_find

pierwsze dopasowanie → @_regex_result

regex_find_all

wszystkie dopasowania, po jednym w linii → @_regex_result

regex_count

liczba dopasowan → @_regex_count

Zamiana

Funkcja Opis

regex_replace

_regex_str, _regex_pattern, _regex_replacement → podmienia TYLKO pierwsze dopasowanie → @_regex_result

regex_replace_all

jak wyzej, ale wszystkie dopasowania (s///g)

W _regex_replacement mozna uzyc \1, \2…​ (grupy przechwycone we wzorcu) oraz & (cale dopasowanie) — dokladnie jak w sed.

Grupy przechwytujace

Funkcja Opis

regex_extract

_regex_str, _regex_pattern (dokladnie jedna grupa (…​)) → zawartosc grupy 1 → @_regex_result

regex_extract_group

jak wyzej, plus _regex_group = numer grupy (1-9) → @_regex_result

Podzial

Funkcja Opis

regex_split

_regex_str, _regex_pattern (separator jako ERE) → fragmenty, po jednym w linii → @_regex_result (puste fragmenty pomijane)

Narzedzia

Funkcja Opis

regex_escape

ucieka metaznaki ERE w dowolnym tekscie → @_regex_result. Przydatne, gdy wzorzec budowany jest z danych wejscia uzytkownika.

Pliki (wspolpraca z main/fs.hl)

Funkcja Opis

regex_grep_file

linie pliku pasujace do wzorca → @_regex_result

regex_count_in_file

liczba dopasowan w pliku → @_regex_count

Gotowe wzorce

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.

Ograniczenia

  • Silnik to POSIX ERE (przez grep -E / sed -E / gawk) — brak konstrukcji PCRE takich jak (?=…​), \d, \b (poza GNU-owym \b ktore dziala w grep/sed GNU), 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_pattern znaku apostrofu ('). Znaki `$ \ " ` ` sa bezpieczne.

  • regex_split wymaga gawk (rozszerzenie RS jako regex to cecha GNU awk, nie POSIX awk/mawk) — zadeklarowane jako zaleznosc (// gawk).

Testy i przyklady

  • tests/test_regex.hl — pakiet testow (hl run tests/test_regex.hl)

  • examples/demo.hl — przyklad uzycia kazdej funkcji (hl run examples/demo.hl)

Licencja

MIT — patrz LICENSE.

About

Regex library for bit.io. Written in Hacker Lang.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors