دیروز داشتم روی یه پروژه کار میکردم ک برای انجام دادن یه مرحله نیاز به گرفتن یه لیست آی پی از کاربر بود.
در واقع ما از کاربر یه فایل میگرفتیم ک باید شامل تعدادی آیپی آدرس برای انجام یه سری فرآیند های تست نفوذ میبود.
حالا یه مشکلی که بهش برخوردیم این بود که اگه کاربر توی فایلش چیزی غیر آیپی وارد میکرد کل برنامه توی مرحله پینگ آیپی fail میشد و کرش میداد.
اینجا بود که Regex وارد کار شد.
امروز میخوام بهتون توضیح بدم که چطور کار میکنه:)
در واقع ما از کاربر یه فایل میگرفتیم ک باید شامل تعدادی آیپی آدرس برای انجام یه سری فرآیند های تست نفوذ میبود.
حالا یه مشکلی که بهش برخوردیم این بود که اگه کاربر توی فایلش چیزی غیر آیپی وارد میکرد کل برنامه توی مرحله پینگ آیپی fail میشد و کرش میداد.
اینجا بود که Regex وارد کار شد.
امروز میخوام بهتون توضیح بدم که چطور کار میکنه:)
#include <regex>
std::regex ip_ex("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
این کدیه که استفاده کردیم. حالا بیاید توضیح بدم که چطوری کار میکنه و بخش به بخش بریم جلو👇
خلاصه اینکه، RegEx توی پروژه ها میتونه خیلی کمکتون میکنه. از این به بعد سعی میکنیم راجب Regex بیشتر حرف بزنیم و باهم دیگه چیزای جدیدی راجبش یاد بگیریم:)
دفعه بعد، باهم از بیسیک regex و ساختارش بیشتر حرف میزنیم و البته که توی گیت هاب یه پروژه هم میزارم ک بخونید و با اون کار کنید;)
دفعه بعد، باهم از بیسیک regex و ساختارش بیشتر حرف میزنیم و البته که توی گیت هاب یه پروژه هم میزارم ک بخونید و با اون کار کنید;)
https://regexr.com/85d19
اینم لینکش در صورتی که خواستید بخش به بخشش رو ببینید چطور کار میکنه و آنلاین تست بکنیدش:)
اینم لینکش در صورتی که خواستید بخش به بخشش رو ببینید چطور کار میکنه و آنلاین تست بکنیدش:)
RegExr
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
کوئیز بزاریم از RegEx؟ جوابش رو هم بعدش به صورت ویدئو ای در اختیارتون میزاریم
Anonymous Poll
80%
آره
20%
نه
Tp hunters cpp
کوئیز بزاریم از RegEx؟ جوابش رو هم بعدش به صورت ویدئو ای در اختیارتون میزاریم
امروز یه چندتا کوئیز داریم
کدوم یکی از این گزینه ها، همه فاصله ها، تب ها یا خط جدید رو تطبیق میده؟
Anonymous Quiz
29%
\b
49%
\s
22%
$
کدوم یکی از رجکس های زیر کلمه Hello یا World رو تطبیق میده؟
Anonymous Quiz
38%
Hello|World
21%
Hello,World
42%
Hello | World
کدوم یکی از پروژه های OpenCV زیر رو دوست دارید توی کانال باهم انجام بدیم؟
هرچند سخت ولی حال میده😂
هرچند سخت ولی حال میده😂
Final Results
19%
شبیه ساز کنکور
33%
ایاب و ذهاب کارمندان به کمک تشخیص چهره
47%
تشخیص اشیا و علامت اون ها از یک ویدئو
Tp hunters cpp
کدوم یکی از پروژه های OpenCV زیر رو دوست دارید توی کانال باهم انجام بدیم؟
هرچند سخت ولی حال میده😂
هرچند سخت ولی حال میده😂
به کمک opencv و yolov5 قراره بنویسیم.
GitHub
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.
Tp hunters cpp
خروجی رجکس زیر؟
Fr[ea]nc[eh]$
Fr[ea]nc[eh]$
یه کتاب براتون آپلود میکنم راجب ریجکس اگه خواستید بخونید خیلی کمکتون میکنه
درس روز 1: مقدمهای بر Regex در C++ و کاربردهای آن
1. تعریف Regex:
از Regular Expressions یا Regex برای تطابق و پردازش الگوهای رشتهای استفاده میشود. از کلاسهای مختلفی مثل
2. کاربرد Regex:
- اعتبارسنجی ورودی کاربر: مثلاً بررسی کنید آیا فرمت یک ایمیل یا شماره تلفن صحیح است.
- جستجو در متن: پیدا کردن کلمات خاص یا الگوهای مشخص در یک متن طولانی.
- جایگزینی متن: تغییر دادن بخشهای خاصی از متن با یک مقدار جدید.
3. کتابخانه مورد نیاز:
برای استفاده از Regex در C++، باید کتابخانه
4. مثال ساده از استفاده Regex در C++:
ابتدا به یک مثال ساده نگاه کنیم تا نحوه استفاده از Regex در C++ را درک کنید:
مثال 1: تطابق یک کلمه با استفاده از
در این کد، اگر رشته
مثال 2: جستجوی یک الگو در متن با استفاده از
در اینجا، برنامه در متن
5. تمرین عملی روز 1:
1. یک برنامه ساده بنویسید که یک رشته ورودی از کاربر بگیرد و با استفاده از
2. سپس از
1. تعریف Regex:
از Regular Expressions یا Regex برای تطابق و پردازش الگوهای رشتهای استفاده میشود. از کلاسهای مختلفی مثل
std::regex
برای ایجاد الگوها و std::regex_match
و std::regex_search
برای تطابق الگو با رشتهها استفاده میشود.2. کاربرد Regex:
- اعتبارسنجی ورودی کاربر: مثلاً بررسی کنید آیا فرمت یک ایمیل یا شماره تلفن صحیح است.
- جستجو در متن: پیدا کردن کلمات خاص یا الگوهای مشخص در یک متن طولانی.
- جایگزینی متن: تغییر دادن بخشهای خاصی از متن با یک مقدار جدید.
3. کتابخانه مورد نیاز:
برای استفاده از Regex در C++، باید کتابخانه
<regex>
را وارد برنامه کنید:#include <regex>
4. مثال ساده از استفاده Regex در C++:
ابتدا به یک مثال ساده نگاه کنیم تا نحوه استفاده از Regex در C++ را درک کنید:
مثال 1: تطابق یک کلمه با استفاده از
std::regex_match
#include <iostream>
#include <regex>
int main() {
std::string text = "hello";
std::regex pattern("hello");
if (std::regex_match(text, pattern)) {
std::cout << "Matched!" << std::endl;
} else {
std::cout << "Not Matched!" << std::endl;
}
return 0;
}
در این کد، اگر رشته
"hello"
با الگوی hello
مطابقت داشته باشد، پیام "Matched!"
چاپ میشود.مثال 2: جستجوی یک الگو در متن با استفاده از
std::regex_search
#include <iostream>
#include <regex>
int main() {
std::string text = "hello world";
std::regex pattern("world");
if (std::regex_search(text, pattern)) {
std::cout << "Pattern found!" << std::endl;
} else {
std::cout << "Pattern not found!" << std::endl;
}
return 0;
}
در اینجا، برنامه در متن
"hello world"
به دنبال الگوی "world"
میگردد و اگر پیدا کند، پیام "Pattern found!"
را چاپ میکند.5. تمرین عملی روز 1:
1. یک برنامه ساده بنویسید که یک رشته ورودی از کاربر بگیرد و با استفاده از
std::regex_match
بررسی کند که آیا ورودی با یک الگوی ساده مثل "hello"
مطابقت دارد یا خیر.2. سپس از
std::regex_search
استفاده کنید تا در یک رشته بزرگتر به دنبال کلمه خاصی بگردید.https://regex101.com
یکی از بهترین سایتها برای تمرین RegEx که میتونید پترنهاتون رو تست کنین و توضیحات مربوط بهش رو ببینین.
یکی از بهترین سایتها برای تمرین RegEx که میتونید پترنهاتون رو تست کنین و توضیحات مربوط بهش رو ببینین.
regex101
regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
Tp hunters cpp
درس روز 1: مقدمهای بر Regex در C++ و کاربردهای آن 1. تعریف Regex: از Regular Expressions یا Regex برای تطابق و پردازش الگوهای رشتهای استفاده میشود. از کلاسهای مختلفی مثل std::regex برای ایجاد الگوها و std::regex_match و std::regex_search برای تطابق الگو…
درس روز 2: حروف عادی و کاراکترهای ویژه در Regex
1. حروف عادی (Literal Characters):
حروف عادی به هر کاراکتری گفته میشود که معنای خاصی در Regex ندارد و دقیقاً همان چیزی است که در رشته به دنبال آن میگردیم.
برای مثال: a به معنای تطبیق با حرف کوچک a یا 1 به معنای تطبیق با عدد 1
مثال:
در این مثال، الگوی
2. کاراکترهای ویژه (Special Characters):
کاراکترهای ویژه در Regex معنای خاصی دارند و برای ایجاد الگوهای پیچیدهتر استفاده میشوند. برخی از مهمترین کاراکترهای ویژه عبارتاند از:
- `.` (نقطه): به معنای تطبیق با هر کاراکتر (به جز خط جدید).
مثال: الگوی
- `^` : تطابق با ابتدای رشته.
مثال: الگوی
- `$` : تطابق با انتهای رشته.
مثال: الگوی
- `\d`: تطابق با هر عدد (0-9).
مثال: الگوی
- `\w`: تطابق با هر کاراکتر الفبایی عددی (حروف، اعداد و زیرخط
مثال: الگوی
- `\s`: تطابق با هر کاراکتر فاصله (space، tab، newline).
مثال: الگوی
3. نحوه استفاده از کاراکترهای ویژه در C++:
برای استفاده از کاراکترهای ویژه مثل
مثال: تطبیق یک عدد در رشته
در این مثال، الگوی
4. فرار دادن کاراکترهای ویژه (Escaping Special Characters):
اگر میخواهید یک کاراکتر ویژه را به عنوان یک کاراکتر عادی تطبیق دهید، باید آن را با یک
مثال: تطبیق نقطه به عنوان کاراکتر عادی
5. تمرین عملی روز 2:
1. یک برنامه بنویسید که با استفاده از
2. یک الگو بنویسید که بررسی کند آیا رشته ورودی شما با یک کلمه خاص شروع و با یک عدد خاص تمام میشود یا نه. برای این کار از
1. حروف عادی (Literal Characters):
حروف عادی به هر کاراکتری گفته میشود که معنای خاصی در Regex ندارد و دقیقاً همان چیزی است که در رشته به دنبال آن میگردیم.
برای مثال: a به معنای تطبیق با حرف کوچک a یا 1 به معنای تطبیق با عدد 1
مثال:
#include <iostream>
#include <regex>
int main() {
std::string text = "hello123";
std::regex pattern("hello");
if (std::regex_search(text, pattern)) {
std::cout << "Pattern found!" << std::endl;
}
return 0;
}
در این مثال، الگوی
hello
به دنبال رشته "hello" در متن میگردد.2. کاراکترهای ویژه (Special Characters):
کاراکترهای ویژه در Regex معنای خاصی دارند و برای ایجاد الگوهای پیچیدهتر استفاده میشوند. برخی از مهمترین کاراکترهای ویژه عبارتاند از:
- `.` (نقطه): به معنای تطبیق با هر کاراکتر (به جز خط جدید).
مثال: الگوی
a.c
با رشتههای "abc"، "a1c" و "a_c" تطبیق دارد.- `^` : تطابق با ابتدای رشته.
مثال: الگوی
^hello
فقط با رشتههایی که با "hello" شروع میشوند، تطبیق دارد.- `$` : تطابق با انتهای رشته.
مثال: الگوی
world$
فقط با رشتههایی که با "world" تمام میشوند، تطبیق دارد.- `\d`: تطابق با هر عدد (0-9).
مثال: الگوی
\d
با هر عددی تطبیق دارد.- `\w`: تطابق با هر کاراکتر الفبایی عددی (حروف، اعداد و زیرخط
_
). مثال: الگوی
\w
با حروف و اعداد تطبیق دارد.- `\s`: تطابق با هر کاراکتر فاصله (space، tab، newline).
مثال: الگوی
\s
با فاصلهها تطبیق دارد.3. نحوه استفاده از کاراکترهای ویژه در C++:
برای استفاده از کاراکترهای ویژه مثل
\d
و \w
در C++، باید از دو \\
استفاده کنید، زیرا در C++ کاراکتر \
خودش یک کاراکتر ویژه است. بنابراین به جای \d
از \\d
استفاده کنید.مثال: تطبیق یک عدد در رشته
#include <iostream>
#include <regex>
int main() {
std::string text = "My number is 1234";
std::regex pattern("\\d+"); // تطابق با یک یا چند رقم
if (std::regex_search(text, pattern)) {
std::cout << "Number found!" << std::endl;
}
return 0;
}
در این مثال، الگوی
\\d+
به دنبال یک یا چند عدد در رشته میگردد.4. فرار دادن کاراکترهای ویژه (Escaping Special Characters):
اگر میخواهید یک کاراکتر ویژه را به عنوان یک کاراکتر عادی تطبیق دهید، باید آن را با یک
\
فرار دهید. به عنوان مثال، اگر میخواهید .
را به عنوان نقطه معمولی جستجو کنید، باید از \\.
استفاده کنید.مثال: تطبیق نقطه به عنوان کاراکتر عادی
#include <iostream>
#include <regex>
int main() {
std::string text = "Price is 50.5 dollars";
std::regex pattern("50\\.5"); // تطابق با "50.5"
if (std::regex_search(text, pattern)) {
std::cout << "Pattern found!" << std::endl;
}
return 0;
}
5. تمرین عملی روز 2:
1. یک برنامه بنویسید که با استفاده از
std::regex_search
بررسی کند که آیا یک عدد (هر عددی) در یک رشته وجود دارد یا خیر.2. یک الگو بنویسید که بررسی کند آیا رشته ورودی شما با یک کلمه خاص شروع و با یک عدد خاص تمام میشود یا نه. برای این کار از
^
و $
استفاده کنید.