# MatchRegEx Komut dosyası ve grafik fonksiyonu

MatchRegEx() bir giriş dizesini (text) bir veya daha fazla normal ifadeyle (regex) karşılaştırır. Eşleşen normal ifade desenlerinin sayısal konumunu döndürür. Yalnızca normal ifadenin değerlendirmesi tüm metin girişini eşleştirirse bir eşleşme yanıtı döndürür. Eşleşme bulunamazsa fonksiyon 0 döndürür.

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.

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. Bir eşleşmenin gerçekleşmesi için, bu giriş dizesinin regex deseniyle tam olarak eşleşmesi gerekir. |
| 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('testSample','test')` | Döndürür `0` . İşlev, yalnızca text ile regex deseni arasında tam bir eşleşme olduğunda bir eşleşme yanıtı döndürür. `testSample` `test` içerse de, başka metin (`Sample`) içerdiğinden tam eşleşmeyi engeller. |
| `MatchRegEx('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')` | Döndürür `3` .Üçüncü regex deseni, verilerle eşleşen ilk desendir. |
| `MatchRegEx('ABC','[abc]+','[123]')` | MatchRegEx() büyük/küçük harfe duyarlı olduğundan `0` döndürür. |
| `MatchRegExI('ABC','[abc]+','[123]')` | Döndürür `1` .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)

#### Yükleme 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 ISBNFormat 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 |

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