Ramin Mor
3 سال پیش توسط Ramin Mor مطرح شد
9 پاسخ

عبارات باقاعده

سلام خسته نباشید. من میخوام لیست تمام عبارات تویه متن که اینشکلی هستن بدست بیارم:(تمامی عبارات داخل کروشه در آرایه باشه)
[7-7-2-2-الف]
[1-2]
[12-5-6]
[1.2]
[4.2.5]
[d.1.3]


ثبت پرسش جدید
سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
3

برای من که مشکلی وجود نداره
کل کد به این شکل هست

$text  = " در حالت خاصی که در بند [7-7-2-2 الف] به آن اشاره شده است، 
الفـ حرکت به ناحیه بازشو قفل محدود شده باشد (بند [7-7-1]):
2- این وسیله قطع و وصل باید:
- یک کنتاکت ایمنی مطابق بند [14-1-2-2] باشد؛ یا
- و یا به روشی وصل شده باشد که شرایط مدارهای ایمنی مندرج در بند [14-1-2-3] را تأمین نماید؛
";
$pattern = '/\[.*?\]/';
preg_match_all($pattern , $text , $matched);
var_dump($matched);

میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
-1

سلام خسته نباشید
میتونی این جوری بگیری
https://www.w3schools.com/php/func_string_str_replace.asp


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
Ramin Mor
تخصص : کارشناس آی تی (برنامه نویسی)
@ramin.mor47 3 سال پیش مطرح شد
0

@milwad فکر کنم نتونستم منظورمو بگم. من اصلا نمیدونم داخل کروشه ها چی هستن که جایگزینی کنم. من فقط میخوام عباراتی که شامل [] هستن رو بریزم تو آرایه همین. نمیدونم داخل کروشه چی هست.


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش آپدیت شد
1

با سلام،
به نظرم یک نمونه ساده از چیزی که میخواین اینطوری میشه.

/ \[.*\]/g

شروع با براکت باز ، دریافت هر چیزی بجز کاراکتر Enter یا new line به تعداد نامحدود ، اتمام با براکت بسته

داخل سایت های تست Regex میتونید بررسی کنید ببینید آیا مواردی که میخواین رو قطعا دریافت میکنه با خیر.
لینک
لینک 2


Ramin Mor
تخصص : کارشناس آی تی (برنامه نویسی)
@ramin.mor47 3 سال پیش مطرح شد
1

@SobhanDadkhah
این خطا رو دریافت میکنم. (preg_match_all(): Unknown modifier 'g' )


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
2

اون حرف G رو نیاز نیست قرار بدید. من از سایت تست regex کپی کردم که اون G رو هم قرار داد :)
به این صورت:

/\[.*\]/

البته ایرادی که خواهد داشت اینه که دوتا رشته که شبیه به آرایه پشت سر هم هستند رو هم یدونه حساب میکنه و جدا نمیکنه!
به اینصورت تست کنید فک میکنم مشکلتون برطرف بشه:

$pattern = '/\[.*?\]/';
preg_match_all($pattern , $text , $matched);

Ramin Mor
تخصص : کارشناس آی تی (برنامه نویسی)
@ramin.mor47 3 سال پیش مطرح شد
0

@SobhanDadkhah
فقط یک مورد اول رو پیدا میکنه بقیه رو نه
این متن رو تست کنید

در حالت خاصی که در بند [7-7-2-2 الف] به آن اشاره شده است، 
الفـ حرکت به ناحیه بازشو قفل محدود شده باشد (بند [7-7-1]):
2- این وسیله قطع و وصل باید:
- یک کنتاکت ایمنی مطابق بند [14-1-2-2] باشد؛ یا
- و یا به روشی وصل شده باشد که شرایط مدارهای ایمنی مندرج در بند [14-1-2-3] را تأمین نماید؛

سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 3 سال پیش مطرح شد
3

برای من که مشکلی وجود نداره
کل کد به این شکل هست

$text  = " در حالت خاصی که در بند [7-7-2-2 الف] به آن اشاره شده است، 
الفـ حرکت به ناحیه بازشو قفل محدود شده باشد (بند [7-7-1]):
2- این وسیله قطع و وصل باید:
- یک کنتاکت ایمنی مطابق بند [14-1-2-2] باشد؛ یا
- و یا به روشی وصل شده باشد که شرایط مدارهای ایمنی مندرج در بند [14-1-2-3] را تأمین نماید؛
";
$pattern = '/\[.*?\]/';
preg_match_all($pattern , $text , $matched);
var_dump($matched);

Ramin Mor
تخصص : کارشناس آی تی (برنامه نویسی)
@ramin.mor47 3 سال پیش آپدیت شد
1

@SobhanDadkhah
ممنون حل شد🙏🙏🙏🙏🙏


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام