Metin İçinde İstenmeyen Metin Varsa Bulmak

1 2
30/08/2023, 07:49

husem

selamlar,
Kod:
ek_islemler = "ENZİM-HİDROFİL-TURBANG-AİRCO"
istenmeyen = "TURBANG-ENZİM"

'ek işlemlerin içinde, istenmeyen alanındaki "TURBANG-ENZİM" varsa
'istenmeyen ekişlem var diye mesaj vermesini istiyorum?

yardımcı olabilirmisiniz?
30/08/2023, 09:18

berduş

aşağıdaki kod işinize yarayabilir
Function RegExpOr()
ek_islemler = "ENZİM-HİDROFİL-TURBANG-AİRCO"
istenmeyen = "TURBANG-ENZİM"

Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = "(" & Replace(istenmeyen, "-", "|") & ")"

If .Test(ek_islemler) = True Then MsgBox "veri var"
End With


End Function
30/08/2023, 10:22

husem

halil üstadım teşekkür ederim, çok harika oldu,
30/08/2023, 10:25

berduş

rica ederim
iyi çalışmalar
not: dikkat edilmesi gereken husus işlem maalesef alt kelimelerde de doğru sonuç gönderiyor
mesela
ek_islemler = "ENZİM-HİDROFİL-koTURBANG-AİRCO"
istenmeyen = "TURBANG-ENZİM"
burada koTURBANG kelimesinin içinde de TURBANGgeçtiği için uyarı mesajı verir
30/08/2023, 10:27

husem

ek işlem listemi buna göre düzenlerim, bu hataya düşülmemesi için tanımlamalarda dikkat edilir.
bilgilendirme ve yardımınız için çok teşekkür ederim.
30/08/2023, 10:33

berduş

aşağıdaki gibi bir düzenleme yapılabilir bu durumda sorun çıkmayabilir
ek_islemler = " " & Replace(ek_islemler, "-", " - ") & " "'<-- burada kelimelerin başına ve sonuna boşluk eklenmiş
    .Pattern = "( " & Replace(istenmeyen, "-", "|") & " )"'<-- burada da kelimelerin başına ve sonuna boşluk eklenmiş

ek_islemler = "ENZİM-HİDROFİL-TURBANG-AİRCO"
istenmeyen = "TURBANG-ENZİM"
ek_islemler = " " & Replace(ek_islemler, "-", " - ") & " "

Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
    .IgnoreCase = True
    .Global = True
    .Multiline = True
    .Pattern = "( " & Replace(istenmeyen, "-", "|") & " )"
If .Test(ek_islemler) = True Then MsgBox "veri var"
End With
1 2