راکت
حل شده

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

9 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

9
سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

بهترین پاسخ

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

$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

تخصص: برنامه نویس بامزه

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

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

شاید پاسخ شما همین‌جا باشد

Ramin Mor
Ramin Mor
@ramin.mor47

تخصص: کارشناس آی تی (برنامه نویسی)

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

سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

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

/ \[.*\]/g

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

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

Ramin Mor
Ramin Mor
@ramin.mor47

تخصص: کارشناس آی تی (برنامه نویسی)

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

سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

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

/\[.*\]/

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

$pattern = '/\[.*?\]/';
preg_match_all($pattern , $text , $matched);
Ramin Mor
Ramin Mor
@ramin.mor47

تخصص: کارشناس آی تی (برنامه نویسی)

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

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

تخصص: کارشناس آی تی (برنامه نویسی)

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

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

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