# MatchRegEx - kod ve grafik fonksiyonu

MatchRegEx(), giriş dizesini belirtilen bir veya daha fazla düzenli ifade deseniyle karşılaştırır ve eşleşen düzenli ifade desenlerinin sayısal konumunu döndürür. Hiçbir eşleşme bulunamazsa fonksiyon 0 döndürür. Bu fonksiyon yalnızca tam eşleşmeleri arar.

Bu fonksiyon, büyük/küçük harfe duyarlı regex işlemleri gerçekleştirir. Büyük/küçük harfe duyarlı olmayan regex işlemleri gerçekleştirmek için alternatif olarak MatchRegExI() varyantını kullanabilirsiniz.

Söz Dizimi:

MatchRegEx (text, regex1 [ , regex2,...regexN])

Dönüş verileri türü: tamsayı

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| text | Bir veya daha fazla normal ifade eşleştirmek istediğiniz giriş dizesi metni. |
| regex | Girdi dizesiyle eşleştirilmeye çalışılacak normal ifade. Tek bir ifade içinde, sonraki bağımsız değişkenler olarak ayrılarak birden fazla normal ifade belirtebilirsiniz. |

Fonksiyon örnekleri

| Örnek | Sonuç |
| --- | --- |
| `MatchRegEx('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')` | `3` döndürür. Üçüncü regex deseni, verilerle eşleşen ilk desendir. |
| `MatchRegEx('ABC','[abc]+','[123]')` | `0` döndürür, çünkü MatchRegEx() büyük/küçük harfe duyarlıdır. |
| `MatchRegExI('ABC','[abc]+','[123]')` | `1` döndürür. MatchRegExI() fonksiyonunun büyük/küçük harfe duyarsız varyantı kullanılır. |

## Ne zaman kullanılır?

Bu fonksiyon için kullanım durumları şunları içerir:

* Biçimlendirme ve uyumluluk standartlarını karşılamak ve verilerdeki hataları belirlemek için metni doğrulama.

* Metnin biçimlendirilme şeklindeki farklılıkları belirleme. Örneğin, kaç telefon numarasının A biçimini, B biçimini vb. kullandığını belirleyebilirsiniz.

## Örnek 1 - telefon numarası biçimlerini analiz etmek için komut dosyası

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### Komut dosyası ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Çeşitli işletmelerin irtibat telefon numaralarını içeren bir tablo `BusinessContactInfo`. Telefon numaraları 10 haneli NANP telefon numaralarıdır.

* Her telefon numarasının belirli bir dizi telefon numarası biçiminden biriyle eşleşip eşleşmediğini değerlendirmek için hesaplanan bir alan, `PhoneNumberFormat`.

Kontrol etmek istediğimiz üç farklı biçim vardır: (###) ###-####, ###-###-#### ve ##########.

Komut dosyası

```
BusinessContactInfo:

Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID	CompanyName	ContactInfo
1	Company A	(123) 456-7890
2	Company B	0123456790
3	Company C	234-567-8901
4	Company D	(024) 680-2456
5	Company E	(135) 791-3579
6	Company F	8901234567
7	Company G	235-235-2352
8	Company H	(555) (555) (5555)
9	Company I	2342342343
10	Company J	444-444-4444
` (delimiter is '\t');
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:

* `CompanyName`

* `ContactInfo`

* `PhoneNumberFormat`

Sonuçlar tablosu

| CompanyName | ContactInfo | PhoneNumberFormat |
| --- | --- | --- |
| Company A | (123) 456-7890 | 1 |
| Company B | 0123456790 | 3 |
| Company C | 234-567-8901 | 2 |
| Company D | (024) 680-2456 | 1 |
| Company E | (135) 791-3579 | 1 |
| Company F | 8901234567 | 3 |
| Company G | 235-235-2352 | 2 |
| Company H | (555) (555) (5555) | 0 |
| Company I | 2342342343 | 3 |
| Company J | 444-444-4444 | 2 |

Buradan, örneğin, her bir telefon numarası biçiminin toplam sayısını ve tanınan bir biçimine sahip olmayan telefon numaralarının sayısını hesaplamak için KPI'lar oluşturabilirsiniz:

Her biçimin oluşumlarını saymak için toplama ifadelerine örnekler

| Biçim | Örnek sayısı | Grafik ifadesi |
| --- | --- | --- |
| (###) ###-#### | 3 | =Count({&lt;PhoneNumberFormat={'1'}&gt;} PhoneNumberFormat) |
| ###-###-#### | 3 | =Count({&lt;PhoneNumberFormat={'2'}&gt;} PhoneNumberFormat) |
| ########## | 3 | =Count({&lt;PhoneNumberFormat={'3'}&gt;} PhoneNumberFormat) |
| Unrecognized format | 1 | =Count({&lt;PhoneNumberFormat={'0'}&gt;} PhoneNumberFormat) |

## Örnek 2 - ISBN biçimini tanımlamak için grafik ifadesi

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### Grafik ifadesi ve sonuçlar

Genel bakış

Veri yükleme düzenleyicisini açın ve aşağıdaki komut dosyasını yeni bir bölüme ekleyin.

Komut dosyası şunları içerir:

* Çeşitli kitaplar için ISBN kodlarını listeleyen bir tablo `Books`.

Bu verilerden, bir regex deseninde belirtilen söz dizimine dayalı olarak her ISBN kodunun geçerli bir 10 basamaklı veya 13 basamaklı kod olup olmadığını belirlemek istiyoruz.

Komut dosyası

```
Books:

Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
```

Sonuçlar

Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:

* `Book`

Bu hesaplanan boyutu ekleyin ve ona ISBN Format etiketini verin:

```
=if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=1, '13-digit', 
	if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=2, '10-digit',
		'Invalid ISBN'))
```

Sonuçlar tablosu

| Book | ISBN Format |
| --- | --- |
| ISBN 000-1-0123-0123-2 | 13-digit |
| ISBN 0-111-23456-7 | 10-digit |
| ISBN 1-901-23456-8 | 10-digit |
| ISBN 2-444-44444-4 | 10-digit |
| ISBN 012-2-0123-0123-4 | 13-digit |
| ISBN 123-3-1234-1234-0 | 13-digit |
| ISBN 222-4-2222-2222-2 | 13-digit |
| ISBN 232-1-2323-2323-1 | 13-digit |
| ISBN 333-3-3333-3333-3 | 13-digit |
| ISBN 555-1-5151-5151-3 | 13-digit |
| ISBN 555-2-5555-5555-3 | 13-digit |
| ISBN 888-0-9999-0000-0 | 13-digit |

## Daha fazla bilgi

* [Komut dosyalarında ve grafik ifadelerinde normal ifadelerle çalışma](https://help.qlik.com/tr-TR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)