• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نیاز به فرمول رگولار اکسپرشن
#1
Question 
سلام
برای جستجوی شماره موبایل ها در دیتابیس به یک فرمول رگولار اکسپرشن نیاز دارم که دنبال اعدادی بگرده که در سمت چپشون 091 و 093 دارن و در سمت راستشون هم 8 تا عدد دیگه باشه
کد پی‌اچ‌پی:
091********
و
093******** 

کد پی‌اچ‌پی:
select from mobiles where mob like #reg express... 
#
  پاسخ
تشکر شده توسط :
#2
کد:
SELECT * FROM `table` WHERE `column` REGEXP '^(091|093)[0-9]{8}'
غایب
  پاسخ
تشکر شده توسط : molana hosseintdk775
#3
به چه شکل استفاده میشه؟
ارور
کد پی‌اچ‌پی:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REGEXP '^(091|093)[0-9]{8}' LIMIT 0, 30' at line 1 
رو گرفتم

REGEXP تابع mysql هستش؟
  پاسخ
تشکر شده توسط :
#4
شما کل کوئری که مینویسی رو اینجا قرار بده.

نقل قول:REGEXP تابع mysql هستش؟
بله دقیقا
غایب
  پاسخ
تشکر شده توسط :
#5
سلام دوست عزیز
اینجا کلا کتابخونه عبارات منظمه
البته مال .net ولی می تونی ازش بگیری و استفاده کنی
  پاسخ
تشکر شده توسط :
#6
برای یک تکه دیگه برنامه که کار ساخت pdf رو انجام میده.مشکلم اینه که اعدادی که با کارکترهای فارسی نوشته میشند رو برعکس چاپ میکنه
راه حلم اینه که در سورس تمام اعداد فارسی رو گیر بیارم و reverse اشون کنم

[عکس: i422110_pdf-fa.png]

نیاز به فرمول رگولار اکسپرشنی دارم که تنها اعداد فارسی رو بهم برگردونه فقط اونهایی که حداقل دو رقم فارسی دارن تا با تابع زیر درستشون کنم
برنامه برای حروف انگلیسی درست کار میکنه.
جای 1-9 باید چی بزارم تا اعداد فارسی رو ساپورت کنه
کد پی‌اچ‌پی:
function revers_nums($str){
    return 
strrev($str[0]);
 }
$xx13 preg_replace_callback("/((1-9){2,10})/","revers_nums",$xx13); 
  پاسخ
تشکر شده توسط :
#7
ایده ای موجود نیست؟
  پاسخ
تشکر شده توسط :
#8
(۱۳۹۱ مرداد ۰۲, ۰۲:۳۴ ب.ظ)parsbin نوشته: سلام
برای جستجوی شماره موبایل ها در دیتابیس به یک فرمول رگولار اکسپرشن نیاز دارم که دنبال اعدادی بگرده که در سمت چپشون 091 و 093 دارن و در سمت راستشون هم 8 تا عدد دیگه باشه
کد پی‌اچ‌پی:
091********
و
093******** 

کد پی‌اچ‌پی:
select from mobiles where mob like #reg express... 
#

کد:
SELECT * FROM mobiles WHERE 'mob' REGEXP '^9[1|3][0-9]{8}$';

جهت اطلاعات بیشتر درباره رگولار اکسپرشن این مقاله را ببینید.
  پاسخ
تشکر شده توسط : hamid_80386
#9
اگه همین دوتا هست خب از LIKE استفاده کنید:

کد:
SELECT * FROM mobiles WHERE `mob`  LIKE '0912%' OR mob LIKE '093%';

البته خطایی که گفتید ربطی به عبارت با قاعده تون نداره، مشکل قبل از اون هست:
کد:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REGEXP '^(091|093)[0-9]{8}' LIMIT 0, 30' at line 1

ممکنه کوئری شما مثل کوئری آقای aminvanda مشکل داشته باشه، چون اسم ستون رو داخل کوتیشن گذاشته اند...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان