Düzenli ifade, hangi metnin bulunacağını tanımlar. Tek bir ifadeyi aynen aramak yerine bir desen belirlersiniz: örneğin “Заявка” sözcüğü ve ardından gelen herhangi bir numara. Numara her mesajda değişse bile desen aradığınız parçayı bulur.
Bu şekilde tarihleri, bağlantıları, tek tek sözcükleri, satırların tamamını ve bir kuralla tanımlanabilen hemen her türlü metin birleşimini arayabilirsiniz. Birkaç basit sembol sayesinde değişen değerleri hesaba katabilir, farklı seçenekler arasından seçim yapabilir ve gereksiz olanları atlayabilirsiniz. Bu tür bir arama, sıradan bir sözcük aramasından çok daha fazlasını yapabilir.

Düzenli ifadelerin sunduğu olanaklar
FLOWIN filtreleri ve değiştirmelerindeki düzenli ifade desteği sayesinde şunları yapabilirsiniz:
- Mesajların başına veya sonuna istediğiniz metni eklemek.
- Bağlantı içeren mesajları filtrelemek.
- Kopyalanan mesajlardan bağlantıları, telefon numaralarını, e-posta adreslerini ve diğer iletişim bilgilerini kaldırmak.
- Uzun mesajları veya tam tersine yalnızca kısa mesajları filtrelemek.
“Regexp” modu
Filtre veya değiştirme ayarlarındaki “Ara” alanının yanında bulunan “Regexp” modu, düzenli ifadeyle aramayı etkinleştirir. Desen bu alana yazılır. Kuralın nasıl oluşturulacağı ve yönlendirmeye nasıl uygulanacağı filtre ve değiştirme talimatlarında açıklanmıştır.

Düzenli ifade nasıl okunur?
İlk desenimiz Заявка №\d+. Numaralar farklı olsa da hem Заявка №125 hem de Заявка №8072 ile eşleşir. Soldan sağa okuyalım:
Заявка №tam olarak bu harfleri, boşluğu ve numara işaretini arar.\d0 ile 9 arasındaki herhangi bir rakamı belirtir.+bu rakamlardan bir veya daha fazlasının art arda gelmesini gerektirir.
Bulunan parçaya eşleşme denir. Örneğin Заявка №125 принята mesajındaki eşleşme Заявка №125 olur; принята sözcüğü ise bunun dışında kalır. Filtrede eşleşme, mesajın koşula uyup uymadığını belirlemeye yardımcı olur; değiştirmede ise hangi parçanın değiştirileceğini gösterir.
Desendeki sıradan harfler ve boşluklar yazıldıkları gibi aranır. Özel semboller ise kuralları belirler. Aşağıda önce temel gösterimler açıklanıyor, ardından farklı işler için hazır örnekler veriliyor.
Düzenli ifade sözdizimi
Düzenli ifadeleri kullanmaya başlamak için sözdizimini, yani belirli sembollerin neyi ifade ettiğini bilmek gerekir.
Temel semboller
^metnin başlangıcını belirtir.$metnin sonunu belirtir..satır sonu dahil herhangi bir karakterle eşleşir.\d0 ile 9 arasındaki bir rakamla eşleşir.\wbir Latin harfi, rakam veya alt çizgiyle eşleşir.\nsatır sonunu belirtir.\tsekme karakterini belirtir.\snormal boşluk, sekme, satır sonu, satır başı veya sayfa sonu karakteriyle eşleşir.\börneğin bir harf ile boşluk arasındaki sözcük sınırını denetler. Eşleşmeye kendisi bir karakter eklemez.
Niceleyiciler
Niceleyiciler, kendilerinden önce gelen karakterin veya grubun kaç kez tekrarlanacağını belirtir. Grup, birden fazla karakteri parantez içinde bir araya getirir.
*0 veya daha fazla tekrar anlamına gelir.+1 veya daha fazla tekrar anlamına gelir.?0 veya 1 tekrar anlamına gelir.{5}tam olarak 5 tekrar anlamına gelir.{1,5}1 ile 5 arasında tekrar anlamına gelir.{1,}1 veya daha fazla tekrar anlamına gelir.{0,5}0 ile 5 arasında tekrar anlamına gelir.
Örneğin:
a+şu metinlerle eşleşir:a,aa,aaavb..*boş metin dahil her türlü metinle eşleşir.аб{3}şu metinle eşleşir:аббб.
Gruplar
Parantezler ( ) karakterleri bir grupta birleştirir. Gruplar en sık niceleyiciler veya dikey çizgi | ile kullanılır. Bu çizgi mantıksal VEYA anlamına gelir.
Örneğin:
((Bob)|(Alice))hemBobhem deAliceile eşleşir.(abc){3}şu metinle eşleşir:abcabcabc.
Karakter kümesi
Karakter kümesi belirtmek için köşeli parantezler kullanılır: [ ]. Bunların içinde karakterleri şu şekilde sıralayabilirsiniz:
[а-яё]Rus alfabesindeki herhangi bir harfle eşleşir.[абвгд]veya[а-д]şu harflerden biriyle eşleşir:а,б,в,гveyaд.[a-z]Latin alfabesindeailezarasındaki herhangi bir harfle eşleşir.[0-5]0 ile 5 arasındaki herhangi bir rakamla eşleşir.
Kümenin başındaki ^ sembolü mantıksal DEĞİL anlamına gelir:
[^а-яё]Rus alfabesindeki harfler dışındaki herhangi bir karakterle eşleşir.[^a-z]Latin alfabesindeailezarasındaki harfler dışındaki herhangi bir karakterle eşleşir.[^\s]şu kümede yer almayan herhangi bir karakterle eşleşir:\s.
FLOWIN’de \w Kiril harflerini kapsamaz. [а-яё] Rus alfabesini kapsar; buna şu harf de dahildir: ё. Ancak [а-я] aralığı bu harfi içermez.
Kaçış karakteri kullanımı
Özel bir sembolü sözdiziminin parçası olarak değil, sıradan bir metin karakteri olarak kullanmak için önüne ters eğik çizgi konur: \. Buna kaçış karakteri kullanımı denir.
Örneğin:
:\)şu metinle eşleşir::). Buradaki parantez bir grubu değil, sıradan bir parantezi belirtir.кто\?şu metinle eşleşir:кто?. Buradaki soru işareti tekrar sayısını belirlemez.
FLOWIN arama ayarları
Bayraklar, büyük ve küçük harflerin ayırt edilip edilmeyeceği gibi genel arama kurallarını değiştirir. FLOWIN’de bazı ayarlar zaten etkin olduğundan aynı desen, varsayılan ayarları kullanan harici bir test aracındakinden farklı davranabilir.
Bayraklar zaten ayarlı
Filtrelerde ve değiştirmelerde IgnoreCase (i), Singleline (s), RE2 ve Unicode etkindir. Bunları her desene elle eklemeniz gerekmez. Uygulamada şu noktalar önemlidir:
ibüyük/küçük harf ayrımını kaldırır:котhemКотhem deКОТile eşleşir.snoktanın, yani.karakterinin satır sonunu da bulmasını sağlar. Bu nedenle.*birden fazla satırı birden kapsayabilir.- Çok satırlı mod
Multiline (m)varsayılan olarak kapalıdır:^ve$her satırın değil, mesajın tamamının başlangıcını ve sonunu belirtir. RE2sözdiziminin özelliklerini belirler:\d0–9 rakamlarını arar,\wise yalnızca Latin harflerini, rakamları ve alt çizgiyi arar. Etkin olanUnicodeKiril harflerini\wkapsamına eklemez.
Aşağıdaki hazır örnekler için herhangi bir ayarı değiştirmeniz gerekmez. Bunları başka bir hizmette deniyorsanız bu ayarları göz önünde bulundurun: bayrak adlarının aynı olması, farklı motorların aynı şekilde davranacağını garanti etmez.
Hazır desenler
Yapmak istediğiniz işi seçin ve deseni “Regexp” modundaki “Ara” alanına kopyalayın. Örneklerde doğrudan bulunan metin gösterilir. Bundan sonra mesaja ne olacağı, yapılandırılan filtreye veya değiştirmeye bağlıdır.
Her seferinde değişen başvuru numarası
Numarasını önceden bilmeden bir başvuruyu bulmak.
Desen:Заявка №\d+
Metin: Заявка №125 принята. Заявка №8072 ожидает ответа.
Bulunan: Заявка №125, Заявка №8072.
“Заявка №” metni sabit kalır; \d+ ise art arda gelen bir veya daha fazla rakamı bulur. № işaretinden önceki boşluk da desene dahildir. “Заявка №ABC” eşleşmez.
Yalnızca altı rakamdan oluşan mesaj
Tam olarak altı basamaklı bir kod içeren mesajları seçmek.
Desen:^\d{6}$
Metin: 482901
Bulunan: 482901.
Başlangıç ve son, mesajın tamamını sınırlar; {6} ise altı rakam gerektiğini belirtir. “Код: 482901”, “48290” ve sonunda boşluk olan “482901 ” eşleşmez.
Birkaç metin seçeneğinden biri
İki durumdan birinin geçtiği mesajları bulmak.
Desen:готово|отменено
Metin: Готово: файл отправлен. Другое задание отменено.
Bulunan: Готово, отменено.
Dikey çizgi “veya” anlamına gelir. Büyük/küçük harf farkı önemli değildir. Sözcük sınırları olmadığında desen, “готового” sözcüğünün içindeki “готово” parçasını da bulur.
Sözcüğün tamamını bulma, başka sözcüklerin içindeki eşleşmeleri atlama
“котёнок” ve “скот” sözcüklerini atlayarak “кот” sözcüğünü bulmak.
Desen:\bкот\b
Metin: Кот, котёнок и скот.
Bulunan: Кот.
\b sözcüğün her iki tarafındaki sınırları denetler. Boşluklar ve noktalama işaretleri, sözcüğü çevresindeki metinden ayırabilir; kendileri eşleşmeye dahil olmaz.
Gün.ay.yıl biçiminde tarih
Günü ve ayı iki, yılı ise dört rakamla yazılmış bir tarihi bulmak.
Desen:\d{2}\.\d{2}\.\d{4}
Metin: Встреча 16.10.2026 в 12:00.
Bulunan: 16.10.2026.
\. herhangi bir karakteri değil, normal bir noktayı belirtir. Desen, takvimi değil yazım biçimini denetler: “99.99.2026” da eşleşir.
Rusça ve İngilizce etiketler
Harflerden, rakamlardan ve alt çizgilerden oluşan etiketleri bulmak.
Desen:#[а-яёa-z0-9_]+
Metin: #Новости #release_2 #всё_готово
Bulunan: #Новости, #release_2, #всё_готово.
# işaretinden sonra kümedeki karakterlerden bir veya daha fazlası gelir. Boşluk veya kısa çizgi eşleşmeyi sonlandırır: “#план-дня” içinde yalnızca “#план” bulunur.
@username biçiminde bahsetmeler
Bir kullanıcıdan veya kanaldan bahsetmeye benzeyen metinleri bulmak.
Desen:@[a-z0-9_]{3,}
Metin: Автор: @news_room. Ещё один: @ab.
Bulunan: @news_room.
@ işaretinden sonra en az üç Latin harfi, rakam veya alt çizgi gerekir. Desen yazım biçimini arar; kullanıcının var olup olmadığını denetlemez. Bir e-posta adresinin bir bölümünü de bulabilir.
http:// veya https:// içeren bağlantılar
Protokolü açıkça yazılmış bir web adresini bulmak.
Desen:https?:\/\/[^\s]+
Metin: Откройте https://example.org/page и http://example.org
Bulunan: https://example.org/page, http://example.org.
s harfi isteğe bağlıdır. Desen, // işaretinden sonra en yakın boşluğa veya şu kümedeki başka bir ayırıcıya kadar olan karakterleri alır: \s. Protokol içermeyen bir adres eşleşmez; adrese bitişik bir virgül veya nokta ise eşleşmeye dahil olabilir.
+7 ve on rakamla yazılmış telefon numarası
Parantez, boşluk ve kısa çizgi olmadan, bitişik yazılmış bir numarayı bulmak.
Desen:\+7\d{10}
Metin: Контакт: +79991234567
Bulunan: +79991234567.
\+ normal bir artı işaretini arar; \d{10} ise 7’den sonra tam olarak on rakam gelmesini gerektirir. “+7 (999) 123-45-67” biçimi eşleşmez. Bu, numaranın varlığını denetleyen değil, yazım biçimine göre yapılan bir aramadır; daha uzun bir rakam dizisinin içinde de eşleşme olabilir.
İstenen işaretle başlayan mesajlar
“Важно:” işaretini yalnızca mesajın en başında bulmak.
Desen:^Важно:
Metin: ВАЖНО: встреча перенесена.
Bulunan: ВАЖНО:.
^ tüm metnin başlangıcını denetler. “Обновление: Важно: встреча перенесена” içinde eşleşme olmaz. Çok satırlı mod varsayılan olarak kapalı olduğundan ikinci satırın başındaki işaret de eşleşmez.
Sözcükler arasındaki fazla boşluklar
Daha sonra tek boşlukla değiştirmek için art arda gelen iki veya daha fazla normal boşluğu bulmak.
Desen:[ ]{2,}
Şu metinde: Текст··с···пробелами iki grup bulunur: iki boşluk ve üç boşluk. Burada · işareti yalnızca normal boşluğu gösterir; bu işareti yazmanız gerekmez.
Köşeli parantezlerin içinde normal bir boşluk vardır; {2,} ise art arda en az iki boşluk gelmesini gerektirir. Fazla boşlukları kaldırmak için bulunan parçalar tek boşlukla değiştirilir. Bu desen satır sonlarını etkilemez.
Yüz karaktere kadar kısa mesajlar
1 ile 100 karakter uzunluğundaki, boş olmayan mesajları seçmek.
Desen:^.{1,100}$
Metin: Короткое сообщение
Bulunan: Короткое сообщение.
Nokta, boşluklar ve satır sonları dahil her türlü karakteri sayar. Süslü parantezler sınırları belirler; ^ ve $ ise mesajın tamamının denetlenmesini gerektirir. Boş bir mesaj veya 100 karakterden uzun bir metin eşleşmez. Birleşik bir emoji birden fazla karakter olarak sayılabilir.
Listeye yeni desenler eklenecek. Yeni desen önerilerinizi destek ekibine, @value_maker üzerinden gönderebilirsiniz.
Kendi deseninizi test etme
Kendi düzenli ifadelerinizi regex101.com üzerinde kolayca test edebilirsiniz. Buradaki arama ayarları FLOWIN’dekilerden farklı olabilir. Bu nedenle deseni çalışan bir yönlendirmeye uygulamadan önce eşleşme beklenen ve beklenmeyen test mesajlarıyla denemeniz gerekir.
Sık sorulan sorular
“Metin” veya “Liste” ne zaman yeterlidir, ne zaman “Regexp” gerekir?
“Metin” modu, bilinen tek bir ifade için uygundur; “Liste” ise birkaç seçeneği sıralamanızı sağlar. Metin bir kurala göre değişiyorsa “Regexp” gerekir: örneğin “Заявка” sözcüğünden sonra her seferinde yeni bir numara geliyorsa. Ayrıca sözcük sınırlarını veya karakter sayısını belirlemeye yardımcı olur. Bulunan mesajla ne yapılacağı ayrıca filtrede veya değiştirmede ayarlanır.
Çevrimiçi test aracındaki ifade neden FLOWIN’de farklı çalışıyor?
Sonuç, motora ve arama ayarlarına bağlıdır. FLOWIN filtrelerinde ve değiştirmelerinde IgnoreCase, Singleline, RE2 ve Unicode zaten etkindir; Multiline ise varsayılan olarak kapalıdır. Bu nedenle büyük/küçük harf ayrımı yapılmaz, nokta satır sonunu bulabilir, ^ ve $ ise mesajın tamamını esas alır. Arama ayarlarını karşılaştırın ve ifadeyi FLOWIN’de eşleşme beklenen ve beklenmeyen mesajlarla test edin.
.* neden birden fazla satırı kapsıyor?
FLOWIN’de Singleline etkindir: nokta, satır sonuyla da eşleşir. Bu nedenle .* ilk satırın sonunda durmak zorunda değildir. En yakın satır sonuna kadar olan metni bulmak için [^\r\n]+ kullanabilirsiniz: bu desen, satır başı ve satır sonu karakterleri dışındaki bir veya daha fazla karakteri arar.
\w neden Rus harflerini bulmuyor?
FLOWIN arama ayarlarında \w Latin harflerini, rakamları ve alt çizgiyi kapsar. Rus harfleri için [а-яё], bu harflerin art arda geldiği diziler içinse [а-яё]+ kullanın. ё harfini ayrıca belirtmeniz gerekir: а-я aralığı bu harfi kapsamaz. Arama zaten büyük/küçük harf ayrımı yapmadığından büyük ve küçük harfleri ayrı ayrı belirtmeniz gerekmez.
Bir sözcüğü başka bir sözcüğün içinde değil, bütün olarak nasıl bulabilirim?
Sözcüğün her iki tarafına \b ekleyin. Örneğin \bкот\b “Кот, котёнок и скот” metninde “Кот” sözcüğünü bulur, diğer iki sözcüğü atlar. Sınırlar sözcüğün konumunu denetler; boşluklar ve noktalama işaretleri bulunan parçaya dahil olmaz.
Örnekteki tarih deseni, böyle bir tarihin var olup olmadığını denetler mi?
Hayır. \d{2}\.\d{2}\.\d{4} ifadesi yalnızca yazım biçimini denetler: iki rakam, nokta, iki rakam, nokta ve dört rakam. Bu nedenle hem 16.10.2026 hem de 99.99.2026 ile eşleşir. Bu örnek, tarihe benzeyen parçaları bulmak için uygundur; günün ve ayın geçerli olduğunu doğrulamaz.
Düzenli ifade hiçbir şey bulamazsa neleri kontrol etmeliyim?
Önce “Ara” alanının yanında “Regexp” seçili olduğundan emin olun. Ardından deseni kaynak metinle karşılaştırın: boşluklar, satır sonları ve sıradan işaretler de eşleşmeyi etkiler. Örneğin Заявка №\d+ № işaretinden önce boşluk ve ardından rakamlar gerektirir; bu nedenle Заявка№125 veya Заявка №ABC ile eşleşmez. Ayrıca ^ ve $ sınırlarını da kontrol edin: bunlar varsayılan olarak mesajın tamamını esas alır. Basit bir parçayla başlayın ve her seferinde sonucu test ederek koşulları tek tek ekleyin.