Dynamics Ax’ta Regular expression kullanımına örnekler
Merhaba
Birinci örnekte metoda gönderilen metinin nokta(). ve tire(-) haricinde özel karakter içerip içermediğini kontrol ediyoruz.
static boolean isProductNumberValid(EcoResProductNumber _ecoResProductNumber ) { Str MatchPattern ="[^a-zA-Z0-9\-.]"; System.Text.RegularExpressions.Match myMatch; ; myMatch = System.Text.RegularExpressions.Regex::Match(_ecoResProductNumber, MatchPattern); return !myMatch.get_Success(); }
İkinci örnekte ise gönderilen metindeki özel karakterleri tire(-) ile değiştiriyoruz. Regex ile köşeli parantez “[ ]” ve ters sılaş “\” karakterlerini değiştiremedim. Bu yüzden ax’ın strReplace() metodunu kullanarak değiştirmek zorunda kaldım.
static EcoResProductNumber clearProductNumber(EcoResProductNumber _EcoResProductNumber) { Str Pattern = "[ :;,/+*'@_#!|$½%&(){}^~<> ]"; EcoResProductNumber ecoResProductNumber; ; ecoResProductNumber =System.Text.RegularExpressions.Regex::Replace(_EcoResProductNumber, Pattern, "-"); ecoResProductNumber = strReplace(ecoResProductNumber ,'[',"-"); ecoResProductNumber = strReplace(ecoResProductNumber ,']',"-"); ecoResProductNumber = strReplace(ecoResProductNumber ,'\\',"-"); return ecoResProductNumber; }
Bu metodları Global sınıfına ekledim. Kullanımı çok basit.
static void SEC_FD_RegEx(Args _args) { ; if(Global::isProductNumberValid("SEC.s-f.sdf.")) { info("Kod doğru."); } info(Global::clearProductNumber("SEC D:;,/+*'@_#!|%&(){}^~[] ")); }
Selamlar.