🔍 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
- PCRE (Perl Compatible Regular Expressions)
- Capture groups, named groups
- Lookahead, lookbehind
- Flags: case-insensitive, multiline, dotall
- Unicode support
💡 Ö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)