PDA

View Full Version : مشکل در Regex



mehdi_ab
چهارشنبه 23 مرداد 1392, 10:15 صبح
با سلام
میخواستم عبارت زیر را با استفاده از regex ها ارزیابی کنم که به مشکل خوردم .
خواستم بدونم اشکال کار کجاست و این فرمی که من نوشتم چه عباراتی را صحیح ارزیابی میکند و البته فرم صحیح ان چیست ؟
(جمله اخر ویرگول ندارد )
input : adad-adad,adad-adad,...


input example : 123-123,123-123,123-123
pattern : @"(\d+-\d+[,])+"

nunegandom
چهارشنبه 23 مرداد 1392, 11:31 صبح
با سلام
+ حریض است، به این معنی که تمام ۱۲۳ های بعد خود رو تطبیق میده یعنی 123-123,123-123,123-123
فرم تنبل آن به این صورت هستش ?+ که کمترین تطبیق رو برمیگردونه یعنی 123

\d+?[-,]
الان این کد تا اونجایی که یادمه باید
123-
123,
رو پوشش بده

mehdi_ab
چهارشنبه 23 مرداد 1392, 11:43 صبح
با سلام
+ حریض است، به این معنی که تمام ۱۲۳ های بعد خود رو تطبیق میده یعنی 123-123,123-123,123-123
فرم تنبل آن به این صورت هستش ?+ که کمترین تطبیق رو برمیگردونه یعنی 123

\d+?[-,]
الان این کد تا اونجایی که یادمه باید
123-
123,
رو پوشش بده

سلام مجدد
من این کد رو هم تست کردم ولی جواب نداد . وقتی مثلا یک کدام از اعداد را برمیدارم باز هم جواب true میشود
تشکر

nunegandom
چهارشنبه 23 مرداد 1392, 11:49 صبح
شما دقیقا میخوای چی رو برگردونه؟

mehdi_ab
چهارشنبه 23 مرداد 1392, 12:16 عصر
شما دقیقا میخوای چی رو برگردونه؟
من یک مثال رو بالا زدم . میخوام چک کنم ورودی من به این شکل باشه . یعنی فرم ( عدد-عدد ) رو البته با تعداد دفعات تکرار متفاوت( با "," از هم جدا میشوند ) بتواند تشخیص دهد . اگر در این بین عددی وارد نشده بود یا فرضا کاراکتری نامربوط در این میان بود تشخیص دهد که فرم ورودی غلط است

mehrdad1991h
چهارشنبه 23 مرداد 1392, 12:28 عصر
من نفهمیدم
چند بار تکرار میشه ؟
نامشخصه تکرار ها ؟
فقط میخوای اول کار با عدد-عدد شروع شده باشه ؟
خوب بیا
123-123,123-123,123-123

@"(\d{3})-(\d{3})(.*?)-(\d{3})"
با الگو که من نوشتم میاد دوتا عدد اول
یعنی 123-123 را چک میکنه و تکه ی اخر که
-123
هستش
در مثال بالا
گروه 1 میشه 123
گروه 2 میشه 123
گروه 3 میشه
,123-123,123
گروه 4 میشه 123

با () گروه ها را از هم جدا میکنیم در نمایش دادن میشه استفاده کرد
{3} هم یعنی عددها دقیقا 3 بار (3 کاراکتر پشت سر هم عدد باشد) تکرار شده باشه
دیگه هرجوری میخوای اوکی کنش
موفق باشی

tooraj_azizi_1035
چهارشنبه 23 مرداد 1392, 13:37 عصر
This may help:
(\d+-\d+,?)+