🔍 regex - Düzenli İfadeler

Pattern Matching, Capture Groups, Replace

38
Fonksiyon
645
Satır
20 KB
Boyut

🚀 Hızlı Başlangıç

içe_aktar regex

// Pattern compile
değişken re = regex.compile(r"\d+")

// Match
eğer regex.is_match(re, "42") ise yap
    yazdır("Eşleşti!")
son

// Find
değişken match = regex.find(re, "Yaşım 25, senin 30")
yazdır(match.text())  // "25"

// Find all
değişken tüm_eşleşmeler = regex.find_all(re, "10, 20, 30")
her m içinde tüm_eşleşmeler için yap
    yazdır(m.text())  // "10", "20", "30"
son

// Capture groups
değişken email_re = regex.compile(r"(\w+)@(\w+\.\w+)")
değişken cap = regex.captures(email_re, "ali@example.com")
yazdır(cap.get(1))  // "ali"
yazdır(cap.get(2))  // "example.com"

// Replace
değişken yeni = regex.replace(re, "Yaşım 25", "XX")
yazdır(yeni)  // "Yaşım XX"

📚 Özellikler

💡 Örnekler

Email Validation ve Parsing

içe_aktar regex

değişken email_pattern = regex.compile(r"^(?P[a-zA-Z0-9._%+-]+)@(?P[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$")

fonksiyon email_geçerli_mi(email: yazı) -> bool yap
    dön regex.is_match(email_pattern, email)
son

fonksiyon email_parse(email: yazı) -> Seçenek yap
    değişken caps = regex.captures(email_pattern, email)
    
    eğer caps ise yap
        dön Bazı(yap
            "user": caps.name("user"),
            "domain": caps.name("domain")
        son)
    son değilse yap
        dön Hiç
    son
son

// Test
değişken emails = [
    "ali@example.com",
    "invalid.email",
    "test@sub.domain.com"
]

her email içinde emails için yap
    eğer email_geçerli_mi(email) ise yap
        değişken parsed = email_parse(email)
        yazdır(email + " -> " + parsed.değer()["user"] + " @ " + parsed.değer()["domain"])
    son değilse yap
        yazdır(email + " -> Geçersiz")
    son
son

Markdown Parser (Basit)

içe_aktar regex

fonksiyon markdown_to_html(markdown: yazı) -> yazı yap
    değişken html = markdown
    
    // Headers (# Header -> 

Header

) html = regex.replace_all( regex.compile(r"^### (.+)$", MULTILINE), html, "

$1

" ) html = regex.replace_all( regex.compile(r"^## (.+)$", MULTILINE), html, "

$1

" ) html = regex.replace_all( regex.compile(r"^# (.+)$", MULTILINE), html, "

$1

" ) // Bold (**bold** -> bold) html = regex.replace_all( regex.compile(r"\*\*(.+?)\*\*"), html, "$1" ) // Italic (*italic* -> italic) html = regex.replace_all( regex.compile(r"\*(.+?)\*"), html, "$1" ) // Links ([text](url) -> text) html = regex.replace_all( regex.compile(r"\[([^\]]+)\]\(([^\)]+)\)"), html, "$1" ) // Code (`code` -> code) html = regex.replace_all( regex.compile(r"`([^`]+)`"), html, "$1" ) // Paragraphs html = regex.replace_all( regex.compile(r"\n\n"), html, "

" ) html = "

" + html + "

" dön html son değişken md = "# BERK ## Modern Sistem Programlama **BERK** *çok hızlı* bir dildir. Daha fazla bilgi için [dokümantasyon](https://berk-lang.org) sayfasına bakın. `yazdır(\"Merhaba Dünya!\")` komutu ile başlayın." değişken html = markdown_to_html(md) yazdır(html)

← Tüm Modüller