منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة ضم نص لرقم مثل(forum-325.html)
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
احاول بفكرة بسيطة وهي جلب روابط وتغيير بنيتها من مثلا 
forumdisplay.php?fid=456
واستخدمت regex لقنص الرقم الاخير لاوهو التالي:
PHP كود :
           '  Dim str As String = "([forumdisplay|showthread]{1,}\.[html|php]{1,}\?fid=)([0-9]{1,})"
            ' 
 Dim reg As New Regex(strRegexOptions.IgnoreCase)
 
           ' Dim ma As Match = reg.Match(href.Attributes("href").Value) 
الرقم ضمن الـ 

كود :
group(2)


الان الخطوة التالية  تكمن فيها المشكلة
PHP كود :
htmlfile htmlfile.Replace(ma.Value"forum-" ma.Groups(2).Value ".html"

المشكلة حين احاول صياغة نص هكذا
كود :
forum-325.html
اجدها ضمن صفحة html المتولدة  هكذا
كود :
(forum-3.html25)

ملاحظة حين يكون الرقم خانة او خانتين فقط لامشكلة وانما المشكلة ثلاث خانات.
اني متشوق لمعرفة الخطا لانها قديمة  ولا ادري كيف احلها.
كود :
htmlfile=Regex.Replace(htmlfile,"([forumdisplay|showthread]{1,}\.[html|php]{1,}\?fid=)(\d+)","forum-$2.html")
(01-07-17, 12:40 AM)S129 كتب : [ -> ]
كود :
htmlfile=Regex.Replace(htmlfile,"([forumdisplay|showthread]{1,}\.[html|php]{1,}\?fid=)(\d+)","forum-$2.html")

حل معجز بصراحة 
ماهو سر علامة $ و رقم 2
ماشاء الله
اللينك مثلها مثل اسم الملف لها امتاد
وأحيانا عليك أن تستخدم الدوال Split و Remove و Replace و PadLeft و PadRight
لبناء String
النص التالي:
forumdisplay.php?fid=183&page=5
اذا اردنا رقمين منه القسم والصفحة هل العبارة التالية صحيحة؟
PHP كود :
thtml Regex.Replace(thtml"([forumdisplay|showthread]{1,}\.[html|php]{1,}\?tid=)(\d+)&page=(\d+)""thread-$2-page-$3.html"
واذا لم توجد غالبا هل هناك تعديل بحيث استخدم سطر واحد من الــregex
كود :
thtml = Regex.Replace(thtml, "([forumdisplay|showthread]{1,}\.[html|php]{1,}\?fid=)(\d+)&page=(\d+)", "thread-$2-page-$3.html")

forumdisplay.php?fid=183&page=5

كود :
thtml = Regex.Replace(thtml, "[forumdisplay|showthread]{1,}\.[html|php]{1,}\?fid=(\d+)&page=(\d+)", "thread-$1-page-$2.html")

Regex.Replace: (...) = $
الصراحة اني متعب نفسي مدة طويلة جدا والحل بكود بسيط جدا جدا.