Nedir?

Regex bir string ifadenin (metin) belirli kurallara uyumluluğunu kontrol etmeye ve düzenlemeye yarar. Açılımı Regular Expressions, Türkçesi ise Düzenli İfadeler olarak geçer.
Regex ile bir alana sadece harf mi girilmiş, rakam mı girilmiş ya da eposta adresi mi girilmiş kontrol edebilirsiniz.

 

<Regex Input="" Pattern="" Replace="False" MatchVariable="Match" />

Özellikler

 TipAçıklama
 InputBu alanda denetlemek istenilen metin bilgisini girilir. Direk metin olarak yazabilir yada “eval::/*/” şeklinde form verisindeki herhangi bir alanı alabilirsiniz. Not: “eval” kısmı girilmesi gerekiyor
 PatternBu kısım eşleşme yapacağımız deseni belirlendiği alandır. Direk metin olarak yazabilir yada “eval::/*/” şeklinde form verisindeki herhangi bir alanı alabilirsiniz. Burası .NET Regex kütüphanesindeki standartlara göre girilmesi gerekmektedir. Aşağıdaki adresler yeni bir desen tanımlamanız için faydalı olacaktır. Not: “eval” kısmı girilmesi gerekiyor
 ReplaceEğer Input içindeki veriyi güncellemek istiyorsanız kullanabilirsiniz, true olduğunda bu fonksiyon metin içerisinde eşleşen alanları, kendi ITaskının içine yazılmış değer dönen bir fonksiyonun değeri ile değiştirir. Metin içerisindeki istenmeyen karakterleri değiştirmek için kullanılabilir. <,>,/ gibi xml’i bozan karakterleri değiştirmek gibi.
 MatchVariableEşleşen metin alanlarının değerlerini Regex taskı içerisine yazılan fonksiyonlarda değişken olarak kullanmak için verilir. Varsayılan “Match” dir, istenirse değiştirilebilir. 

 

Örnekler

Girilen eposta tanımının standarda uygun olup olmadığını denetler ve doğrulama kuralı ile formun ilerletilmesini engelleyebilirsiniz

<Project Name="">
  <Set Node="/*/EpostaTest/EpostaKontrol">
    <Value Culture="" Target="Bool">true</Value>
  </Set>
  <Regex Input="eval::." Pattern="^[^&lt;&gt;\s\@]+(\@[^&lt;&gt;\s\@]+(\.[^&lt;&gt;\s\@]+)+)$" Replace="False" MatchVariable="Match">
    <Set Node="/*/EpostaTest/EpostaKontrol">
      <Value Culture="" Target="Bool">false</Value>
    </Set>
  </Regex>
  <Evaluate Target="None" Culture=""><![CDATA[/*/EpostaTest/EpostaKontrol]]></Evaluate>
</Project>

Örnek 2

Herhangi bir metin içerisindeki “${metin}” şeklindeki karakterleri seçer. Dinamik bir içerik oluşturma için kullanılabilir. 

<Script Name="">
  <Delete Node="Regex/Matches/Data/Template" />
  <Regex Input="eval::/*/Regex/TargetString" Pattern="eval::/*/Regex/RegularExp" Replace="False" MatchVariable="Match">
    <Insert Into="/*/Regex/Matches/Data">::/*/Regex/Matches/Template</Insert>
    <Set Node="/*/Regex/Matches/Data/Template[last()]/MatchedString">
      <Value Culture="" Target="None">$(Match)</Value>
    </Set>
  </Regex>
</Script>

Örnek 3:

Replace özelliğini true yaparak Regex Itaskında veri alınması sağlanabilir. İstenilirse boş bir karakterle veya istenilen karakterler ile değiştirilebilir.

<Script Name="">
  <Set Node="Regex/ReplacedString">
    <Regex Input="eval::/*/Regex/TargetString" Pattern="eval::/*/Regex/RegularExp" Replace="True" MatchVariable="Match">
      <Character Type="Space" />
    </Regex>
  </Set>
</Script>

 

$(Sayimi) alanı değerin sayı veya text olduğunun bilgisini ikili değerler olarak Yanlış(False) veya Doğru (True) olarak tutar. Bir değerin sayımı olduğunu belirten Regex kodu ^[0-9]+$ dır ve ./FisNo alanında bulunan alanı kontrol ederek sayı olup olmadığını belirler. 

    <SetVariable Name="$(Sayimi)">
      <Value Culture="" Target="Bool">false</Value>
    </SetVariable>
    <Regex Input="eval::./FisNo" Pattern="^[0-9]+$" Replace="False" MatchVariable="Match">
      <SetVariable Name="$(Sayimi)">
        <Value Culture="" Target="Bool">true</Value>
      </SetVariable>
    </Regex>

Ayrıca Bakınız

Value

SetVariable