# Normal ifadeler

Düzenli ifadeler, bir botun kullanıcı girdisinin biçimini doğrulamasına olanak tanıyan kalıplardır — örneğin, girdinin başka bir şey yerine bir telefon numarası olduğundan emin olmak için.

<div data-with-frame="true"><figure><img src="/files/b7d2271abb47ec97a51c8b259c27990973dd861b" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Düzenli ifade kullanarak karşılaştırma yapmak için, eşleşme türünü "RegEx match" olarak ayarlamanız gerekir.
{% endhint %}

{% hint style="info" %}
Düzenli ifadeler, eşleşme için kullanılan değişkenlerde değil, doğrudan tetikleyicide yazılmalıdır!
{% endhint %}

Veri toplarken kullanıcılar genellikle kendilerinden istenen dışında bir şey girer. İşte bir telefon numarası girişini doğrulamak için tipik bir akış. Kullanıcı geçerli bir telefon numarası girmezse, bot ondan tekrar denemesini isteyecektir.

<div data-with-frame="true"><figure><img src="/files/91f45717ae74493b0737c6e3a84ed5f1b27ce52d" alt="" width="563"><figcaption></figcaption></figure></div>

Telefon numarası giriş bloğunun iki çıkış bağlantısı vardır: biri herhangi bir tetikleyici olmadan, diğeri ise bir telefon numarasını eşleştirmek için düzenli ifade kullanan bir tetikleyiciyle.

^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

Bu akış, telefon numarası doğrulamasını ele almak için iki bağlantı kullanır:

1. **Birincil bağlantı (geçerli numara)**
   * **Tetikleyici:** Doğru biçimlendirilmiş bir telefon numarası.
   * **Eylem:** Numarayı uygulamaya ekler ve devam eder.
2. **Yedek bağlantı (geçersiz giriş)**
   * **Öncelik:** Birincil bağlantıdan daha düşük.
   * **Tetikleyici:** Geçerli bir telefon numarası olmayan herhangi bir giriş.
   * **Eylem:** Kullanıcıyı hata hakkında bilgilendirir ve tekrar denemeye yönlendirir.

Bu, kullanıcıların yalnızca geçerli veri sağladıktan sonra ilerlemesini sağlarken, hatalar hakkında anında geri bildirim almasını da sağlar.

## Faydalı düzenli ifadelerin bir listesi:

* **Sayısal Girdi yalnızca 1 ile başlayan rakamlar:**\
  ^\[1-9]+\[0-9]\*$
* **Sayısal Girdi yalnızca 0 ile başlayan rakamlar:**\
  ^\[0-9]+\[0-9]\*$
* **Kredi kartı numarası:**\
  \[0-9]{13,16}
* **Genel telefon numarası:**\
  ^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
* **Harfler ve sayılar** (Latin):\
  ^\[a-zA-Z0-9]+$
* **Alan adı** (ör. abcd.com):\
  ^(\[a-zA-Z0-9]\(\[a-zA-Z0-9\\-]{0,61}\[a-zA-Z0-9])?\\.)+\[a-zA-Z]{2,6}$
* **URL** (ör. abcd.com):\
  (https?):((//)|(\\\\\\\\))+\[\w\d:#@%/;$()\~\_?\\+-=\\\\\\.&]\*
* **IPv4:**\
  ((25\[0-5]|2\[0-4]\d|\[01]?\d\d?)\\.){3}(25\[0-5]|2\[0-4]\d|\[01]?\d\d?)
* **IPv6:**\
  ((^|:)(\[0-9a-fA-F]{0,4})){1,8}$
* **Kullanıcı adı** (harf ve sayı olabilen 2-20 karakter sınırıyla, ilk karakter bir harf olmalıdır):\
  ^\[a-zA-Z]\[a-zA-Z0-9-\_\\.]{1,20}$
* **Şifre** (Küçük ve büyük Latin harfleri, sayılar):\
  ^(?=.\*\d)(?=.\*\[a-z])(?=.\*\[A-Z])(?!.\*\s).\*$
* **Güçlü şifre** (büyük harf, küçük harf, sayılar/özel karakterler, en az 8 karakter):\
  (?=^.{8,}$)((?=.\*\d)|(?=.\*\W+))(?!\[.\n])(?=.\*\[A-Z])(?=.\*\[a-z]).\*$
* **YYYY-AA-GG biçiminde tarih:**\
  \[0-9]{4}-(0\[1-9]|1\[012])-(0\[1-9]|1\[0-9]|2\[0-9]|3\[01])\
  **GÜNC.** Daha sıkı tarih doğrulaması:\
  (19|20)\d\d-((0\[1-9]|1\[012])-(0\[1-9]|\[12]\d)|(0\[13-9]|1\[012])-30|(0\[13578]|1\[02])-31)
* **GG/AA/YYYY biçiminde tarih:**\
  (0\[1-9]|\[12]\[0-9]|3\[01])\[- /.]\(0\[1-9]|1\[012])\[- /.]\(19|20)\d\d
* **GG.AA.YYYY biçiminde tarih:**\
  (0\[1-9]|\[12]\[0-9]|3\[01])\[.]\(0\[1-9]|1\[012])\[.]\(19|20)\d\d
* T**am ve kayan noktalı sayılar** (ondalık ayırıcı olarak nokta)\
  \\-?\d+(\\.\d{0,})?
* **UUID**:\
  ^\[0-9A-Fa-f]{8}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{12}$
* **Enlem veya Boylam:**\
  -?\d{1,3}\\.\d+
* **GÜNC. E-posta**:\
  ^\[-\w.]+@(\[A-z0-9]\[-A-z0-9]+\\.)+\[A-z]{2,4}$
* <mark style="color:kırmızı;">**GÜNC. URL**</mark> \
  \~^(?:(?:https?|ftp|telnet)://(?:\[a-z0-9\_-]{1,32}(?::\[a-z0-9\_-]{1,32})?@)?)?(?:(?:\[a-z0-9-]{1,128}\\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|\[a-z]{2})|(?!0)(?:(?!0\[^.]|255)\[0-9]{1,3}\\.){3}(?!0|255)\[0-9]{1,3})(?:/\[a-z0-9.,\_@%&?+=\\\~/-]\*)?(?:#\[^ '\\"&]\*)?$\~i
* **GÜNC. HH:MM:SS biçiminde saat**: formatı\
  ^(\[0-1]\d|2\[0-3])(:\[0-5]\d){2}$
* **GÜNC. Mac-adresi**:\
  (\[0-9a-fA-F]{2}(\[:-]|$)){6}$|(\[0-9a-fA-F]{4}(\[.]|$)){3}

Kullanılabilir çok sayıda düzenli ifade vardır. Bu सूचीde ihtiyacınız olanı bulamazsanız, bir arama motoru kullanmanız iyi bir fikirdir.

Düzenli ifadeleri aşağıdaki gibi web sitelerinde rahatça test edebilirsiniz: <https://regex101.com/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/functions/regex.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
