الرجوع الي الدرس

البحث عن أعداد صحيحة غير سالبة

هناك سلسلة من الأعداد الصحيحة. أنشئ تعبيرًا عاديًا لا يبحث إلا عن الكلمات غير السلبية (يُسمح بصفر).

مثال للاستخدام:

let regexp = /your regexp/g;

let str = "0 12 -5 123 -18";

alert( str.match(regexp) ); // 0, 12, 123

regexp لرقم صحيح هو \ d +.

We can exclude negatives by prepending it with the negative lookbehind: (?<!-)\d+.

على الرغم من أننا إذا جربناها الآن ، فقد نلاحظ نتيجة “إضافية” أخرى:

let regexp = /(?<!-)\d+/g;

let str = '0 12 -5 123 -18';

console.log(str.match(regexp)); // 0, 12, 123, 8

كما ترون ، فإنه يطابق المباراة: 8 ، منالموضوع: -18. لاستبعاده ، نحتاج إلى التأكد من أن regexp يبدأ في مطابقة رقم ليس من منتصف رقم آخر (غير مطابق).

يمكننا القيام بذلك عن طريق تحديد مظهر سلبي آخر خلف: (؟ <! -) (؟ <! \ d) \ d +. الآن النمط: (؟ <! \ d) يضمن أن المطابقة لا تبدأ بعد رقم آخر ، فقط ما نحتاجه.

يمكننا أيضًا أن ننضم إليهم في lookbehind خلفنا هنا:

let regexp = /(?<![-\d])\d+/g;

let str = '0 12 -5 123 -18';

alert(str.match(regexp)); // 0, 12, 123