# SubFieldRegEx Komut dosyası ve grafik fonksiyonu

SubFieldRegEx(), sınırlayıcı olarak belirtilen normal ifade desenini kullanarak bir giriş dizesi ifadesinden metin çıkarır. Hiçbir eşleşme bulunamazsa fonksiyon null değer 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 SubFieldRegExI() varyantını kullanabilirsiniz.

Söz Dizimi:

SubFieldRegEx (text, regex\_delimiter [, field\_no])

Dönüş verileri türü: dize

Bağımsız Değişkenler

| Bağımsız Değişken | Açıklama |
| --- | --- |
| text | İçinde normal ifade deseni aramak istediğiniz giriş dizesi metni. |
| regex\_delimiter | Sınırlayıcı olarak kullanılacak normal ifadeyi içeren dize ifadesi. Aynı düzenli ifade kalıbında, `\|` (dikey işlem) karakteriyle ayırarak birden fazla sınırlayıcı belirtebilirsiniz. |
| field\_no | Ayıklamak istediğiniz alt bölümün numarasını belirten tam sayı değeri. Örneğin, dördüncü alt bölümü ayıklamak için `4` değerini belirtin. Bu, isteğe bağlı bir bağımsız değişkendir.<br><br>Aşağıdakiler, fonksiyonun bir komut dosyasında mı yoksa grafik ifadesinde mi kullanıldığına bakılmaksızın uygulanır:<br><br><ul> <li> <p><span>field_no</span> pozitif ise fonksiyon soldan sağa doğru eşleşmeleri tanımlayan bir değer döndürür.</p> </li> <li> <p><span>field_no</span> negatif ise fonksiyon sağdan sola doğru eşleşmeleri tanımlayan bir değer döndürür.</p> </li> </ul><br><br>Fonksiyonu bir komut dosyasında kullanırken:<br><br><ul> <li> <p><span>SubFieldRegEx()</span> fonksiyonunu bir <span>LOAD</span> deyiminde kullanırsanız ve <span>field_no</span> atlanırsa fonksiyon, eşleşme sayısı kadar kayıt oluşturur.</p> </li> <li> <p><span>SubFieldRegEx()</span> kullanılarak birkaç alan yüklenirse ve hiçbiri bir <span>field_no</span> bağımsız değişkeni belirtmezse tüm kombinasyonların Kartezyen çarpımları oluşturulur.</p> </li> </ul><br><br>Fonksiyonunu bir grafik ifadesinde kullanırken:<br><br><ul> <li> <p><span>field_no</span> atlanırsa varsayılan değer <code>1</code> olur.</p> </li> </ul> |

Fonksiyon örnekleri

| Örnek | Sonuç |
| --- | --- |
| `SubFieldRegEx('a,b c;1 2,3',' \|,\|;', 1)` | `a`<br>döndürür. Bu örnekte, üç sınırlayıcı karakter belirtilmiştir (boşluk, virgül ve noktalı virgül). |
| `SubFieldRegEx('a;b;c;1;2;3',';', 2)` | `b`<br>döndürür. Bu durumda, yalnızca bir sınırlayıcı karakter belirtilir (noktalı virgül). |
| `SubFieldRegEx('a,b c;1 2,3',' \|,\|;', 4)` | `1`<br>döndürür. |

## SubFieldRegEx ne zaman kullanılmalı?

Sınırlandırılmış bir listeden birden fazla ayrı değeri ayıklamak için SubFieldRegEx() kullanabilirsiniz. Örneğin, daha büyük bir doğal dil bloğu içinde virgülle ayrılmış bir listeniz varsa listedeki her bir değeri veri modelinizdeki yeni bir kayda ayırmak için bu fonksiyonu kullanabilirsiniz.

## Örnek 1 - işleme göre etiketleri ayırtmak için komut dosyası

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

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

* Başlangıçta işlem verilerini içeren bir tablo `Transaction_By_Tag`. Bu veriler, bireysel etiket değerlerini yeni kayıtlara ayıklamak için işlenir.

* Ayıklanan etiket değerlerini saklamak için `TransactionTag` adında bir alan oluşturulur.

İşlem etiketlerini içeren alanda, birden fazla etiket sınırlayıcıyla ayrılmış metin dizeleri içinde yer alır. Sınırlayıcı aşağıdaki karakterlerden herhangi biri olabilir: , | ;

Komut dosyası

```
Transaction_By_Tag:

Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID	Product	Tags	Amount
1	Product A	Special order,Eligible for return,Warranty included	100.93
2	Product B	Ineligible for return|No warranty available	51.11
3	Product C	No warranty available	12.83
4	Product B	Special order;Liquidation sale;Warranty included	209.48
] (delimiter is '\t');

drop fields Tags;
```

Sonuçlar

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

* `ID`

* `Product`

* `TransactionTag`

Sonuçlar tablosu

| ID | Product | TransactionTag |
| --- | --- | --- |
| 1 | Product A | Eligible for return |
| 1 | Product A | Warranty included |
| 1 | Product A | Special order |
| 2 | Product B | No warranty available |
| 2 | Product B | Ineligible for return |
| 3 | Product C | No warranty available |
| 4 | Product B | Liquidation sale |
| 4 | Product B | Special order |
| 4 | Product B | Warranty included |

Bu örnekte, bir komut dosyasında kullanıldığında, SubFieldRegEx() ile giriş dizesinde bulunan her eşleşme için ayrı bir satır döndürüldüğü gösterilmektedir.

## Örnek 2 - etiketleri işleme göre ayırmak için grafik ifadeleri

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

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

* İşlem verilerini içeren bir tablo `Transaction_By_Tag`.

* Bir işlemle ilişkili tüm etiketleri saklamak için metin dizeleri içeren bir alan, `Tags`.

Gereksinimlerimiz:

* İşlem etiketlerini içeren alanda, birden fazla etiket sınırlayıcıyla ayrılmış metin dizeleri içinde yer alır. Sınırlayıcı aşağıdaki karakterlerden herhangi biri olabilir: , | ;

* Her etiketi kendi alanına ayırmak için grafik ifadelerini kullanmak istiyoruz; bir işleme en fazla üç etiket eklemek mümkündür.

Komut dosyası

```
Transaction_By_Tag:

Load * Inline [
ID	Product	Tags	Amount
1	Product A	Special order, Eligible for return, Warranty included	100.93
2	Product B	Ineligible for return | No warranty available	51.11
3	Product C	No warranty available	12.83
4	Product B	Special order;Liquidation sale;Warranty included	209.48
] (delimiter is '\t');
```

Sonuçlar

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

* `ID`

* `Tags`

Şu hesaplanan boyutları ekleyin:

* 

  `=SubFieldRegEx(Tags, ',|;|\|', 1)`

* 

  `=SubFieldRegEx(Tags, ',|;|\|', 2)`

* 

  `=SubFieldRegEx(Tags, ',|;|\|', 3)`

Sonuçlar tablosu

| ID | Tags | =SubFieldRegEx(Tags, ',\|;\|\\|', 1) | =SubFieldRegEx(Tags, ',\|;\|\\|', 2) | =SubFieldRegEx(Tags, ',\|;\|\\|', 3) |
| --- | --- | --- | --- | --- |
| 1 | Special order, Eligible for return, Warranty included | Special order | Eligible for return | Warranty included |
| 2 | Ineligible for return \| No warranty available | Ineligible for return | No warranty available | - |
| 3 | No warranty available | No warranty available | - | - |
| 4 | Special order;Liquidation sale;Warranty included | Special order | Liquidation sales | Warranty included |

## Daha fazla bilgi

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