از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ساده سازی عبارات منظم با RegExpBuilderJS عبارات منظم هستند روی یکی از قدرتمندترین ابزارها در جعبه ابزار توسعه دهندگان. اما بیایید صادق باشیم، regex نوشتن به نوعی بد است. نه تنها نوشتن سخت است، بلکه خواندن و اشکال زدایی آن نیز سخت است. بنابراین چگونه می توانیم استفاده از آن را آسان تر کنیم؟ در آن…
سرفصلهای مطلب
عبارات منظم هستند روی یکی از قدرتمندترین ابزارها در جعبه ابزار توسعه دهندگان. اما بیایید صادق باشیم، regex نوشتن به نوعی بد است. نه تنها نوشتن سخت است، بلکه خواندن و اشکال زدایی آن نیز سخت است. بنابراین چگونه می توانیم استفاده از آن را آسان تر کنیم؟
در شکل سنتی خود، regex الگوهای رشته ای قدرتمند را در یک عبارت بسیار فشرده تعریف می کند. یکی از معاوضههایی که میتوانیم انجام دهیم، استفاده از نحو پرمخاطبتر است که خواندن و نوشتن آسانتر است. این هدف از بسته ای مانند است regexpbuilderjs
.
را regexpbuilderjs
بسته در واقع یک پورت از بسته محبوب PHP است، regexpbuilderphp. را regexpbuilderphp
بسته به خودی خود پورت یک بسته قدیمی JS است، regexpbuilder
، که اکنون به نظر می رسد از بین رفته است. این بسته جدید برای ادامه کار نسخه اصلی است regexpbuilder
بسته بندی
تمام اعتبار به اندرو جونز برای ایجاد نسخه اصلی JS و مکس گیرکنز برای پورت PHP
نصب و راه اندازی
برای نصب بسته، می توانید از npm استفاده کنید:
$ npm install regexpbuilderjs
استفاده
در اینجا یک مثال ساده از روش استفاده از پکیج آورده شده است:
const RegExpBuilder = require('regexpbuilderjs');
const builder = new RegExpBuilder();
const regEx = builder
.startOfLine()
.exactly(1)
.of('S')
.getRegExp();
حالا بیایید این را کمی تفکیک کنیم. را RegExpBuilder
class کلاس اصلی است که برای ساخت عبارات منظم خود از آن استفاده خواهید کرد. می توانید با ایجاد یک نمونه جدید از این کلاس و متدهای زنجیره ای با هم شروع کنید تا regex خود را ایجاد کنید:
startOfLine()
: این روش مقدار را اضافه می کند^
کاراکتر به regex، که با شروع یک خط مطابقت دارد.exactly(1)
: این روش مقدار را اضافه می کند{1}
کمیت کننده به regex، که دقیقاً با یک رخداد از یک کاراکتر یا گروه معین مطابقت دارد.of('S')
: این روش مقدار را اضافه می کندS
شخصیت به regex.getRegExp()
: این روش نهایی را برمی گرداندRegExp
شی ای که می توانید برای مطابقت دادن رشته ها از آن استفاده کنید.
با این کار میتوانید رشتههایی مانند «اسکات»، «فوتبال» یا «S418401» را مطابقت دهید.
این عالی است و همه چیز، اما این احتمالاً یک رشته regex است که می توانید با آن بیایید روی مال خودت هستی و برای خواندن زیاد تقلا نکن. خب حالا بیایید یک مثال پیچیده تر را ببینیم:
const builder = new RegExpBuilder();
const regExp = builder
.startOfInput()
.exactly(4).digits()
.then('_')
.exactly(2).digits()
.then('_')
.min(3).max(10).letters()
.then('.')
.anyOf(('png', 'jpg', 'gif'))
.endOfInput()
.getRegExp();
این regex برای مطابقت با نام فایل ها است که ممکن است به صورت زیر باشد:
- 2020_10_hund.jpg
- 2030_11_katze.png
- 4000_99_maus.gif
برخی از بخشهای جالب این regex این است که میتوانیم نوع رشتهها را مشخص کنیم (یعنی digits()
، حداقل و حداکثر تعداد یک کاراکتر یا گروه (یعنی min(3).max(10)
، و لیستی از مقادیر ممکن (به عنوان مثال anyOf(('png', 'jpg', 'gif'))
).
برای فهرست کاملی از روشهایی که میتوانید برای ساختن رژکس خود استفاده کنید، میتوانید آن را بررسی کنید مستندات.
این فقط یک طعم کوچک از کاری است که می توانید با آن انجام دهید regexpbuilderjs
. این بسته بسیار قدرتمند است و می تواند به شما کمک کند عبارات منظم پیچیده را به روشی خواناتر و قابل نگهداری تر بسازید.
نتیجه
نظرات، سوالات، و پیشنهادات همیشه خوش آمدید! اگر بازخوردی دارید روی چگونه این می تواند بهتر کار کند، احساس راحتی کنید تماس گرفتن روی ایکس. در عین حال، می توانید مخزن را بررسی کنید روی GitHub و در حالی که در آن هستید به آن ستاره بدهید.
(برچسبها برای ترجمه)# regex
منتشر شده در 1403-06-07 10:06:06