الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقسيم سلسلة نصية إلى كلمات

مغلق
بدأه al_samirr في 24 فبراير 2007 · 7 رد · 565 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعا.

لدي سؤال اتمنى تساعدونى فيه وهو :

لدي string بها نص معين هذا النص مكون من كلمات الفاصل بينها مسافات.

المسافات هذه غير ثابتة العدد يعني مثلا بين الكلمة الاولى والثانية 1 مسافة بينما بين الثانية والثالثة 5 مسافات و بين الثالثة والرابعة 3 مسافات و هكذا .....

و قد ياتي نص جديد يتخزن بال string فيه تتغير المسافات يعنى قد يكون بين الكلمة الاولى والثانية فيه 7 مسافات وهكذا .....

فانا اريد ان اعمل split لهذا النص بحيث امسكه كلمة كلمة بغض التظر عن المسافات بين الكلمات و بغض النظر عن عددها ؟؟

اتمنى القى حلا لديكم ولكم جزيل الشكر.

#2

إقرأ الموضوع البحث عن الكلمات والنصوص المقتبسة, باستخدام Regular Expressions ففيه جواب سؤالك. كما ستستفيد من الموضوع

التحقق من السلاسل النصية والأرقام والتواريخ, باستخدام Regular Expressions. وإن واجهت صعوبة بعدها ضع الكود الذي توصلت إليه وسنتعاون في تصحيحه

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

شكرا على ردك السريع جزاك الله خيرا

ساعمل ما قلته واردلك الخير ان شاء الله

#4

لا شكر على واجب أخي

ولكن إن توفقت للحل الصحيح يرجى وضعه هنا حتى يستفيد الجميع

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5

و ان ما وصلت للحل الصحيح ؟؟ :)

#6

خليك واثق من نفسك رح تصل للحل الصحيح بس لاتجرب الأكواد هنا قبل محاولتك للوصول للحل الصحيح بنفسك

سوف أضع لك عدة أمثلة أعتقد أن كلا منها يمثل إجابة صحيحة لسؤالك عليك اختيار ما يناسبك منها أو الجمع بين أكثر من واحدة للحصول على النتائج

أولا ستحتاج للاستيراد التالي في بداية الملف قبل كل شئ

Imports System.Text.RegularExpressions

حل رقم 1

' الحل الأبسط
		Me.ListBox1.Items.Clear()
		Dim pattern As String = "\w+"
		For Each m As Match In Regex.Matches(Me.TextBox1.Text, pattern)
			Me.ListBox1.Items.Add(m.Value)
		Next

حل رقم 2

' إزالة بعض الكلمات من النتائج
		Me.ListBox1.Items.Clear()
		Dim pattern As String = "\b(?!(the|a|an|and|or|on|of|with)\b)\w+"
		For Each m As Match In Regex.Matches(Me.TextBox1.Text, pattern)
			Me.ListBox1.Items.Add(m.Value)
		Next

حل رقم 3

' اعتبار مايوجد ضمن التنصيص كلمة واحدة
		Me.ListBox1.Items.Clear()
		Dim pattern As String = "(?<q>[""']).*\k<q>|\w+"
		For Each m As Match In Regex.Matches(Me.TextBox1.Text, pattern)
			Me.ListBox1.Items.Add(m.Value)
		Next

حل رقم 4

' إزالة الأرقام من النتائج
		Me.ListBox1.Items.Clear()
		Dim pattern As String = "(?<q>[""']).*\k<q>|[\w-[0-9_]]+"
		For Each m As Match In Regex.Matches(Me.TextBox1.Text, pattern)
			Me.ListBox1.Items.Add(m.Value)
		Next

انظر المرفقات مثال يتضمن جميع الحلول

WindowsApplication12.zip

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 24 فبراير 2007 في 14:10

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#7

اخي الكريم محمد جزاك الله كل خير على تعاونك معي و بارك الله في علمك.

اخى العزيز لقيت حلا من خلال دالة split

و هذا هو الكود :

Dim row1 As String


Dim row2() As String


row2 = row1.Split(New [Char]() {" "c}, 8, StringSplitOptions.RemoveEmptyEntries

اخي العزيز لدي ملاحظة وهي الطريقة التى تكتب بها الكود في مشاركاتك تلخبط بعد الشىء الكلام المكتوب

فتلاحظ ان نهاية السطر يأتي في الاول اتمنى لو تجد حلا لهذه المشكلة حتى يسهل قراءة الكودتقبل خالص تحياتي

تم تعديل هذه المشاركة بواسطة HGB في 24 فبراير 2007 في 17:12

#8

يسعدني أنك وجدت الحل كما تريد

وبالنسبة لموضوع كتابة الكود سأرى ما يمكن فعله

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 24 فبراير 2007 في 15:37

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

هذا الموضوع مغلق.

مواضيع مشابهة