نوشته شده توسط
_behnam_
یه مشکل هست . اگه کلمه همخونی نداشته باشه اررور میده . چطوری جلو اررور رو بگیرم ؟
دو راه دارید.
یکی اینکه قبل از ارسال رشته موردنظرتون به متود Execute ابتدا اونو به متود Test بدید. متود Test کارش این هست که بررسی کنه ببینه آیا چیزی تطبیق میکنه یا نه. اگر جواب مثبت باشه، True برمیگردونه، در غیر اینصورت False.
If objRegExp.Test("khooooooobi") = True Then
این کارو باید قبل از Execute انجام بدید.
ترجیحاً رشته خودتون رو توی یک متغیر قرار بدید و اون متغیر رو به این متودها بدید. نه اینطوری که من نوشتم.
راه دوم اینه که قبل از اینکه آیتم شماره 0 رو نمایش بدید، ببرسی کنید ببینید اصلاً MatchCollection شما آیتمی داره یا نه:
If collMatches.Count > 0 Then MsgBox collMatches(0)
Property پیشفرض در MatchCollection همون Item هست. من برای خلاصه سازی، Item رو نمی نویسم. وگرنه اصلش اینطوریه:
If collMatches.Count > 0 Then MsgBox collMatches.Item(0)
کلاس RegExp انعطاف پذیری بالایی داره. به طور مثال شما میتونید توی برنامه تون، کل جمله ای که کاربر به روبات میگه رو با یکبار ارسال به متود Execute تحلیل کنید. برای تحلیل رشته های چندخطی باید خاصیت MultiLine رو True کنید. و برای اینکه اگر بیش از یک تطبیق در رشته تون وجود داشت، همه اش رو برگردونه باید خاصیت Global رو True کنید. و برای اینکه به همه آیتم های تطبیق شده دسترسی داشته باشید خیلی راحت با یک For Each میتونید همشون رو دریافت کنید.
موفق باشید/