للتطابق مع الرمز “=” فقط وليس “==”, يمكنك استخدام النمط التالي:
cpp#include
#include
#include
int main() {
std::string line = "if(y == 5 || x = 1) {";
std::regex pattern("\\b(=)\\b");
std::smatch match;
if (std::regex_search(line, match, pattern)) {
std::cout << "Matched: " << match.str(1) << std::endl;
} else {
std::cout << "No match found." << std::endl;
}
return 0;
}
هذا النمط \\b(=)\\b
يستخدم “حدود الكلمة” (\\b
) للتأكد من أن الرمز “=” ليس جزءًا من كلمة. تذكر أيضًا أنه يستخدم المجموعة الفرعية (=)
لالتقاط الرمز “=” فقط.
مقالات ذات صلة
المزيد من المعلومات
بالطبع! يمكنك استخدام الرمز \b
في تعبير ال regex لتحديد حدود الكلمة، حيث يعني \b
بداية أو نهاية كلمة. وبالنسبة للتعبير الذي استخدمته \\b(=)\\b
، فإن (=)
هو ما يسمى بـ “مجموعة فرعية” (capturing group) وهو يعني أننا نريد التطابق بشكل خاص مع الرمز “=”، وليس فقط أي حرف.