أدوات النص واليومية · مجموعة أدوات النص
حرفي أو ريكس؟ لماذا يمكن لنقطة في عبارة البحث أن تغير كل نتيجة؟
· لماذا يهم
البحث والاستبدال التعبيرات العادية تحرير النص
يشرح أي الحروف تحمل معنى في التعبيرات العادية، وما الخطأ الذي يحدث عند التعامل مع 'a.b' أو 'v1.2 (beta)' كنمط، ولماذا يجب أن يكون الوضع الحرفي الذي يفلت من كل شيء هو الوضع الافتراضي.
البحث عن "v1.2" ومطابقة "v102" - كيف تقوم أداة regex الأولى بتحويل علامات الترقيم إلى أحرف بدل بهدوء
قد يتوقع وكيل الدعم الذي يقوم بتغيير `v1.2` في ملاحظات الإصدار بشكل معقول أن تحدد هذه الأحرف الأربعة تسمية إصدار واحدة. مع تمكين Regex، فإن النقطة تعني أي حرف باستثناء فاصل الأسطر. وبالتالي، يمكن أن يتطابق النمط مع `v102`، أو `v1-2`، أو `v1x2`، ويمكن لاستبدال الكل تغيير الإدخالات التي لم تكن أبدًا جزءًا من الإصدار المطلوب.
يعتبر هذا الفشل هادئًا لأن النمط صالح. لا توجد أية رسالة خطأ للتمييز بين حرف البدل المتعمد وعلامات الترقيم المنسوخة من اسم الملف. قد يكون التحذير الأول عبارة عن عدد استبدال كبير بشكل غير متوقع. عندما تكون المهمة هي استبدال النص المعروف تمامًا، يجب أن تكون علامات الترقيم عبارة عن بيانات، وليست تعليمات لمحرك البحث.
الأحرف الأولية — النقطة، والأقواس، والأقواس، وعلامة الزائد، والنجمة، وعلامة الاستفهام، والتوجيه، وعلامة الإقحام، والدولار، والشرطة المائلة العكسية، وما يفعله كل منها
في وضع JavaScript regex، تكون النقطة عبارة عن حرف بدل؛ تحدد الأقواس المربعة فئة الأحرف؛ الأقواس إنشاء مجموعة؛ بالإضافة إلى تكرار التحكم بالنجمة وعلامة الاستفهام؛ ويقدم الأنبوب البدائل. تعمل علامة الإقحام والدولار على تثبيت النموذج في بداية النص بأكمله أو نهايته في هذه الأداة، نظرًا لعدم تمكين وضع الأسطر المتعددة.
تعمل الشرطة المائلة العكسية على تغيير كيفية قراءة الحرف التالي، ويمكن للأقواس المعقوفة التعبير عن أعداد التكرار. هذه الرموز مهمة فقط في المواضع التي تتعامل معها قواعد التعبير العادي بشكل خاص، لذا فإن حفظ القائمة أقل موثوقية من تحديد الوضع الذي تحتاجه المهمة. إذا كنت تطابق تسمية مقدمة أو جزء مسار أو اسم ملف، فابدأ حرفيًا.
الأحرف الأولية المهمة في وضع JavaScript regex
الوضع الحرفي يجعل البحث يعني ما تم كتابته. يتخطى ToolAcre الأحرف الأولية للتعبير العادي قبل تجميع البحث، لذا فإن `v1.2 (beta)` يطابق النقاط والمسافات والأقواس نفسها. ولا يحول العبارة إلى حرف بدل متبوعًا بمجموعة التقاط، ولا يزال يجد كل تكرار دقيق عبر النص.
يحدث هذا الهروب فقط على جانب البحث. لا يزال حقل الاستبدال يتبع JavaScript قواعد سلسلة الاستبدال، حيث يُدرج `$&` النص المطابق وينتج `$$` علامة دولار واحدة. وبالتالي فإن البحث الحرفي هو الخيار الافتراضي الآمن لتحديد النص، ولكن البديل الذي يحتوي على علامات الدولار لا يزال يستحق مراجعة متعمدة قبل تحديد استبدال الكل.
وضع Regex - عندما تريد القوة، وكيفية الهروب من الشخصيات الفردية بنفسك
يكون وضع Regex مفيدًا عندما يجب أن تتطابق عدة نماذج مع قاعدة واحدة. يمكن أن يستهدف النمط نطاقًا من الأرقام أو علامات الترقيم الاختيارية أو البدائل دون إدراج كل تهجئة مصدر. قم بتشغيل Regex فقط عندما يكون هذا التغيير مقصودًا، ثم قم بالتخلص من حرف خاص بشرطة مائلة عكسية عندما يجب أن يحتفظ بمعناه العادي، مثل `.` للنقطة.
تقوم الأداة بتجميع النموذج باستخدام صيغة JavaScript regex وتطبقه دائمًا على مستوى العالم. يؤدي مسح حساس حالة الأحرف إلى إضافة مطابقة غير حساسة لحالة الأحرف، ولكن لا يتم تقديم العلامات متعددة الأسطر والنقاط والعلامات الثابتة والأونيكود. تم الإبلاغ عن بناء جملة غير صالح دون تغيير النص. لا يزال هناك نمط صالح ولكنه واسع جدًا قيد التشغيل، لذا فإن نجاح التجميع ليس دليلاً على مجموعة المطابقة الآمنة.
مثال عملي - استبدال 'config.yml (قديم)' عبر ملاحظات الإصدار في الوضع الحرفي، ثم محاولة نفس الشيء في وضع regex لمعرفة الفرق
ضع في اعتبارك ملاحظات الإصدار التي تحتوي على `Load config.yml (old)` و`Archive configXyml old` و`Keep config.yml (new)`. مع إيقاف تشغيل Regex، ابحث عن `config.yml (old)` واستبدله بـ `config.yml (legacy)`. تتغير العبارة الأولى بالضبط لأنه تم تخطي النقطة والأقواس قبل تجميع النمط.
قم بتشغيل Regex وأرسل نفس البحث الذي لم يتم إلغاؤه. يمكن أن تستهلك النقطة حرفًا آخر، بينما مجموعة الأقواس `old` بدلاً من مطابقة الأقواس الحرفية، وبالتالي فإن السطر المقصود لم يعد مطابقًا كما هو مكتوب. يحتاج معادل التعبير العادي إلى `config.yml (old)`. النسخة الحرفية أقصر وأكثر وضوحًا وأكثر توافقًا مع هذه المهمة النصية الدقيقة.
الأخطاء الشائعة — المسافات الزائدة في مربع البحث، والخلط بين الكلمة الكاملة والحرفية، ونسيان التحقق من عدد الاستبدال
من السهل التغاضي عن المسافات الزائدة لأن حقل البحث يمنحها وزنًا مرئيًا قليلًا، إلا أن الوضع الحرفي يحافظ عليها. البحث عن `beta ` لن يطابق `beta` في نهاية السطر. تحقق من حدود الحقل عندما لا يشير المصطلح المرئي بوضوح إلى أي بدائل، وتجنب إضافة مسافات لمجرد فصل النص المنسوخ عن النثر المحيط.
الكلمة الكاملة ليست اسمًا آخر للحرفية. فهو يغلف البحث المجمع في حدود الكلمات، والتي تعتمد على ASCII هنا ويمكن أن تفشل حول علامات الترقيم أو المصطلحات المحركة. قم أيضًا بفحص عدد الاستبدال بعد كل تشغيل واستخدم التراجع عندما يكون ذلك مفاجئًا. إن العدد دليل على النطاق، وليس رسالة نجاح زخرفية.
الأخطاء الشائعة: المسافات وحدود الكلمة بأكملها وبناء جملة الاستبدال
لا تحاول هذه الصفحة تقديم دليل كامل لعلامات التعبير العادي. يستخدم ToolAcre المطابقة العامة والمطابقة غير الحساسة لحالة الأحرف بشكل اختياري، بينما تظل نقاط الارتساء تشير إلى النص الكامل بدلاً من كل سطر. قد يفشل تجميع الأنماط المنسوخة من المحركات ذات العلامات المضمنة أو فئات POSIX أو بناء جملة مختلف أو قد تعني شيئًا آخر في المتصفح.
يتم دعم مجموعات الالتقاط، لذا يحتاج المخطط التفصيلي إلى تصحيح بدلاً من ذكر أنها خارج الأداة. في وضع Regex، يمكن الإشارة إلى المجموعات بـ `$1`، `$2` والأرقام الأحدث في الاستبدال. وهذه الإمكانية منفصلة عن البحث الحرفي وعن عناصر التحكم المحدودة في العلم؛ استخدمه فقط عندما تكون إعادة هيكلة النص المطابق هو الهدف الفعلي.
الأعلام محدودة هنا، بينما يتم دعم مجموعات الالتقاط في البدائل
القاعدة العملية بسيطة: اترك Regex متوقفًا عند استبدال إصدار معروف أو اسم ملف أو تسمية منتج أو جزء جملة. يقوم الوضع الحرفي بتجنب الأحرف الخاصة تلقائيًا، مع الحفاظ على علامات الترقيم التي تحدد الهدف. قم بتمكين Regex فقط عندما تتمكن من تحديد التباين الذي يجب أن يقبله النمط وسبب عدم كفاية البحث الدقيق.
قبل الالتزام بملاحظات الإصدار المحررة، قارن العدد المبلغ عنه مع عدد التغييرات التي توقعتها وافحص النتيجة. ToolAcre يترك الأنماط غير الصالحة دون تغيير ويوفر إمكانية التراجع عن النمط الصالح الذي وصل إلى مسافة بعيدة جدًا. وتساعد هذه الضمانات، ولكن اختيار الوضع الحرفي للعمل الحرفي يمنع المطابقة التقريبية قبل حدوثها.