برنامه نویسی

نحوه نوشتن Regex بدون نوشتن regex

می‌دانم نوشتن regex آنقدرها هم سخت نیست، اما بدون شک یکی از خسته‌کننده‌ترین کارهای دنیاست و اگر آن را درک نکنید، بسیار خسته‌کننده است. بنابراین امروز به شما تقدیم می کنم، magic-regexp

این کتابخانه به شما این امکان را می دهد که عبارات منظم با یک نحو بسیار طبیعی و بصری ایجاد کنید.

ابتدا باید آن را نصب کنیم

npm install magic-regexp
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، بیایید یک آرایه ایجاد کنیم که بتوانیم عبارات خود را آزمایش کنیم

const stringsToParse = [
    "id: 123",
    "there is no id",
    "random string id: 1",
    "[INFO] id: 12",
    "id: 1a",
    "random log info id: 4b93H6Hd random log",
    "id: 4b93H6Hd"
]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مورد اول

اولین مورد ما یک مورد ساده خواهد بود، فقط با رشته “id:” مطابقت دهید.

import { createRegExp, exactly } from 'magic-regexp'

const regex = createRegExp(
    exactly('id: ')
)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Regex برای پیدا کردن رشته دقیق با magic-regexp

می‌بینیم که تقریباً همه رشته‌ها با regex ما مطابقت دارند، فقط رشته دوم حاوی رشته دقیق “id:” نیست.

مورد دوم

بیایید کاری پیچیده تر انجام دهیم. بیایید دوباره کلمه “id:” را پیدا کنیم، اما اکنون می خواهیم یک حرف یا رقم به دنبال آن باشد و طول آن بین 2 تا 6 باشد.

import { createRegExp, exactly, letter, digit } from 'magic-regexp'

const regex = createRegExp(
    exactly('id: ')
    .and(letter.or(digit).times.between(2, 6))
)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Regex برای یافتن رشته دقیق و طول خاص

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

مورد سوم

بنابراین، اجازه دهید یک چیز دیگر را در اینجا اضافه کنیم .at.lineStart(). همانطور که از نامش می‌گوید، فقط به رشته‌ای اهمیت می‌دهد که در ابتدا وضعیت شما در آن قرار دارد.

import { createRegExp, exactly, letter, digit } from 'magic-regexp'

const regex = createRegExp(
    exactly('id: ')
    .at.lineStart()
    .and(letter.or(digit).times.between(2, 6))
)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Regex برای یافتن رشته دقیق، طول خاص و در ابتدا

همانطور که می بینید، فقط آنهایی که با شرایط قبلی مطابقت دارند و آنهایی که با “id:” ما شروع می شوند، با شرایط مطابقت دارند.

مورد چهارم

بیایید همه چیز را کمی جلوتر ببریم. بیایید اضافه کنیم .at.lineEnd(). همانطور که از نامش می‌گوید، فقط به دنبال آنهایی است که در انتهای خط هستند. توجه داشته باشید که ما این را در داخل and() تابع.

import { createRegExp, exactly, letter, digit } from 'magic-regexp'

const regex = createRegExp(
    exactly('id: ')
    .at.lineStart()
    .and(letter.or(digit).times.between(2, 6).at.lineEnd())
)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Regex برای یافتن رشته دقیق، طول خاص، در ابتدا و در انتها

با این شرط خاص، تنها دو رشته این شرط را برآورده می کند.

خلاصه

همانطور که می بینید، نوشتن عبارات منظم با زبان طبیعی تر بسیار آسان تر است، اگر تجربه ای با regex نداشته باشید. کارهای زیادی وجود دارد که می توانید با این کتابخانه انجام دهید، می توانید مستقیماً اسناد را بررسی کنید.

یک الهام بزرگ برای این پست، از این ویدیوی یوتیوب آمده است، بنابراین اگر چیزی بصری تر می خواهید آن را بررسی کنید 🙂

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا