PDA

View Full Version : کمک در ساخن یک کد Regular



reza9025
سه شنبه 11 آذر 1393, 14:46 عصر
با سلام. من در یک فایل متنی تعدادی داده دارم که به شکل زیر ذخیره شده اند:(تعدادشان بشتر از هزار تا هست)


#1,'Mohammad22','Ahmadi24','1','1'
#2,'Mohammad44','Ahmadi48','6','2'
#3,'Mohammad66','Ahmadi72','3','3'
#4,'Mohammad88','Ahmadi96','12','4'
#5,'Mohammad110','Ahmadi120','41','5'
#6,'Mohammad132','Ahmadi144','6','6'
#7,'Mohammad154','Ahmadi168','18','7'
#8,'Mohammad176','Ahmadi192','8','8'
#9,'Mohammad198','Ahmadi216','5','9'
#10,'Mohammad220','Ahmadi240','13','10'
#11,'Mohammad242','Ahmadi264','11','11'




حال می خواهم داده های بیشتر از رکورد زیر را بازیابی کنم. (کل خط شامل نام و نام خانوادگی و ...)


#5,'Mohammad110','Ahmadi120','5','[5]'


عدد داخل [] عدد مدنظر من است. یعنی ستون اخر([5])
کد Regular برای داده های بزرگ تر از پنج





([^-]\b[6-9]\b)|([^-]\b[0-9][0-9]\d*\b)

من خودم این عبارت را نوشتم ولی فقط و فقط داده های عددی بیشتر از این مقدار رو میاره درحالی که من می خوام که اطلاعات مربوطه را نیز بدست بیاره.

این کد regular:



\#\d*,'.*','.*','\d*','([^-]\b[6-9]\b)|([^-]\b[0-9][0-9]\d*\b)'


از استادهای بزرگوار خواهش می کنم راهنماییم کنید.

reza9025
سه شنبه 11 آذر 1393, 17:52 عصر
کسی نبود جوابمو بده یا سوالم گنگ بود. اگه گنگ بود می خوام این رکورد ها رو از فایل برگردونم که قسمت مشخصه ی آن بزرگتر از 5 باشد.



#6,'Mohammad132','Ahmadi144','6','6'

#7,'Mohammad154','Ahmadi168','18','7'

#8,'Mohammad176','Ahmadi192','8','8'

#9,'Mohammad198','Ahmadi216','5','9'

#10,'Mohammad220','Ahmadi240','13','10'

#11,'Mohammad242','Ahmadi264','11','11'

rahnema1
سه شنبه 11 آذر 1393, 18:07 عصر
.+'\d+','([6-9]|\d{2,})'

reza9025
چهارشنبه 12 آذر 1393, 10:53 صبح
اقا دستت درد نکنه که جوابمو دادید.


حالا این کد تمام اعداد کوچکتر از 2451 را که داخل ' ' هست رو برمی گردونه. ولی اعداد اعشاری رو انتخاب نمی کنه. میشه دقیقا همین کدی که من نوشتم رو طوری تغییر داد که قسمت اعشاری عدد را نیز برگرداند. (هر تعداد رقم اعشار)


'([2][4][5][0-0]|[2][4][0-4][0-9]|[2][0-3][0-9][0-9]|[0-1][0-9][0-9][0-9]|[0-9][0-9]?[0-9]?|[-]\d+)'

rahnema1
چهارشنبه 12 آذر 1393, 18:39 عصر
این جور میشه

'(((\d|([1-9]\d{1,2})|(1\d{3})|(2[0-3]\d{2})|(24[0-4]\d)|(2450))((\.\d*)?))|(2451((\.(0*))?))|(-((\d|[1-9](\d+))((\.(\d*))?))))'