أكثر

ما هو التعبير للحصول على مجموعة فرعية من الأحرف في QGIS Field Calculator؟

ما هو التعبير للحصول على مجموعة فرعية من الأحرف في QGIS Field Calculator؟


لدي عمود من 10 أسماء أحرف ، على سبيل المثال L3NAM 1988 ك. كيف يمكنني حذف أول 5 أحرف وآخر حرف واحد باستخدام تعبير في حاسبة حقل QGis؟


استخدم الالجزء الفرعيتعمل تحتسلسلةقائمة على سبيل المثال:substr ('L3NAM1988K'، 6، 4)


مقدمة

يركز هذا الفصل على تقنيات أتمتة سير عمل نظم المعلومات الجغرافية. سوف تتعلم التقنيات التي ستساعدك على أن تكون أكثر إنتاجية ، وإنشاء تصورات جميلة وحل مشاكل التحليل المكاني المعقدة. هذا الفصل مثالي للمشاركين الذين يستخدمون QGIS بالفعل ويريدون نقل مهاراتهم إلى المستوى التالي.

فيما يلي الموضوعات التي يتم تناولها في هذا الفصل

  • إطار المعالجة - الخوارزميات ومعالجة الدُفعات وصانع النماذج
  • تحريك بيانات السلاسل الزمنية
  • إنشاء طيران ثلاثي الأبعاد من الصور الجوية
  • تعبيرات متقدمة لتمكين تحرير البيانات بشكل أسرع والمطابقة غير الواضحة والمزيد.

قبل أن نقوم بالتمارين ، سوف يساعدك ذلك على معرفة المزيد عن المصدر المفتوح وكيفية عمل مشروع QGIS.


الحجة الأولى لـ grep هي نمط ، تعبير عادي. يعيد grep الصفوف التي تحتوي على النمط المعطى في هذه الوسيطة الأولى. ^ يعني البدء بـ.

لنجعل هذا قابلاً للتكرار:

إذا لم تكن مرتاحًا مع regex ، فهناك وظيفة في حزمة utils ، والتي يمكنها تحويل التعبيرات القائمة على أحرف البدل إلى regex. لذلك يمكنك أن تفعل

أعتقد أنك تريد البحث عن تعبير عادي:

في التعبير العادي ، يشير الرمز "^" إلى startswith ، و b ستكون المجموعة التالية من الأحرف كلمة. التعبيرات العادية هي أداة فعالة لمعالجة النصوص وتتطلب بعض الدراسة. هناك الكثير من البرامج التعليمية والمواقع على الإنترنت. أحدهم الذي أستخدمه هو:

لا يمكنني استخدام R الآن (جهاز الكمبيوتر المحمول الخاص بي للزوجة)) ، لذلك لا يتم اختبار هذه الأجزاء من التعليمات البرمجية. ربما تزودنا في المرة القادمة بمثال لمجموعة البيانات ، مما يجعل من السهل حقًا تقديم مثال عملي.


1 إجابة 1

s هي طريقة اختصار تعبير GNU العادي لكتابة تعبير POSIX [[: blank:]] ، والذي يطابق مسافة أو حرف جدولة ( s أيضًا يتطابق مع الأسطر الجديدة إذا تم إدراجها في مساحة النمط لـ sed عن طريق أوامر التحرير الأخرى). يأتي تدوين s في الأصل من تعبيرات Perl العادية ، ولكن في تعبير Perl العادي يعمل مثل [[: space:]] في تعبير POSIX ، يطابق مجموعة أكبر من الأحرف المنتجة للمسافات.

يستبدل مسافة واحدة / علامة تبويب متتالية أو أكثر بمسافة واحدة ، ثم يكرر الاستبدال حتى لا يتم إجراء المزيد من التطابقات على السطر الحالي.

لذا ، نعم ، كان بإمكانك استخدام s / s + / g بدلاً من ذلك ، لكن هذا ملف وسعوا (GNU) تعبير عادي بدلاً من التعبير الأساسي ، لذلك يجب أن تضيف -E إلى الأمر:

يستخدم هذا الآن خيارًا غير قياسي (-E) و التعابير النمطية الخاصة بـ GNU. لكتابة الأمر بطريقة متوافقة قياسية ، يجب عليك استخدام أي منهما

حيث <1، > تعني نفس معدّلات التعبير العادي الموسعة + و <1،> ("واحد أو أكثر").


اخطائي

لقد مارست خوارزمية البحث عن السلاسل منذ يناير 2015. لكنني ما زلت غير جيد في التفكير في الحالات المتطورة. لقد ارتكبت بعض الأخطاء في الممارسات القليلة الأولى ، وأخيراً خرجت من حالة الاختبار أعلاه لتغطية جميع حالات الحافة.

ما زلت أرتكب تلك الأخطاء الشائعة. قم بزيارة hashmap دون التحقق من أن المفتاح موجود في القاموس أولاً. والثاني هو النظر في حالتين ، إما في القاموس أو لا في القاموس. والثالث هو الحفاظ على قيمة القاموس بإضافة قيمة واحدة أو إنقاصها.


بناء الجملة

فئة المعالم أو طبقة المعالم التي سيتم تحويلها.

الموقع الذي سيتم فيه إنشاء فئة معلم الإخراج. يمكن أن يكون هذا إما قاعدة بيانات جغرافية أو مجلد. إذا كان موقع الإخراج عبارة عن مجلد ، فسيكون الإخراج ملف شكل.

اسم فئة ميزة الإخراج.

تعبير SQL يستخدم لتحديد مجموعة فرعية من الميزات. لمزيد من المعلومات حول بناء جملة SQL ، راجع موضوع التعليمات مرجع SQL لتعبيرات الاستعلام المستخدمة في ArcGIS.

الحقول ومحتويات الحقول المختارة من فئة معالم الإدخال. يمكنك إضافة حقول الإخراج أو إعادة تسميتها أو حذفها بالإضافة إلى تعيين الخصائص مثل نوع البيانات وقاعدة الدمج.

يمكنك استخدام فئة ArcPy FieldMappings لتحديد هذه المعلمة.

يحدد معلمات التخزين (التكوين) لقواعد البيانات الجغرافية في قواعد البيانات الجغرافية للملفات والمؤسسة. قواعد البيانات الجغرافية الشخصية لا تستخدم كلمات التكوين.


من حين لآخر ، تنشأ الحاجة إلى أن تقبل المعلمة أنواع بيانات متعددة ، وغالبًا ما يشار إليها على أنها نوع بيانات مركب. في مربع أدوات Python ، يتم تحديد أنواع البيانات المركبة من خلال تعيين قائمة بأنواع البيانات لخاصية نوع بيانات المعلمة. في المثال أدناه ، يتم تعريف المعلمة التي تقبل مجموعة بيانات نقطية أو كتالوج البيانات النقطية.

مجموعة بيانات مستخدمة للترميز الجغرافي تخزن سمات العنوان ، والفهارس المرتبطة ، والقواعد التي تحدد عملية ترجمة الأوصاف غير المكانية للأماكن إلى البيانات المكانية.

قالب يتم بناء عليه محدد موقع العنوان الجديد.

حجم الخلية المستخدمة بواسطة أدوات البيانات النقطية.

نوع بيانات يقبل أي قيمة.

ملف يحتوي على خريطة واحدة وتخطيطها والطبقات والجداول والمخططات والتقارير المرتبطة بها.

نوع وحدة المساحة وقيمتها ، مثل المتر المربع أو الفدان.

مصدر بيانات متجه مختلط بأنواع المعالم والترميز. لا يمكن استخدام مجموعة البيانات للاستعلامات أو التحليلات المستندة إلى فئة الميزات.

عقدة المستوى الأعلى في شجرة الكتالوج.

حجم الخلية المستخدم بواسطة محلل ArcGIS المكاني エ ク ス テ ン シ ョ ン.

تحدد جانبي الخلية النقطية.

مرجع لطبقات الأطفال المتعددة ، بما في ذلك الترميز وخصائص العرض.

يحدد نوع الضغط المستخدم للنقطية.

إطار مرجعي ، مثل نظام UTM الذي يتكون من مجموعة من النقاط و / أو الخطوط و / أو الأسطح ، ومجموعة من القواعد المستخدمة لتحديد مواقع النقاط في مساحة ثنائية وثلاثية الأبعاد.

تنسيق مجلد الأنظمة

مجلد على القرص يخزن أنظمة إحداثيات.

مجموعة بيانات التغطية ، ونموذج بيانات خاص لتخزين المعالم الجغرافية كنقاط وأقواس ومضلعات مع جداول سمات المعالم المرتبطة.

فئة معالم التغطية ، مثل النقطة والقوس والعقدة والمسار ونظام المسار والقسم والمضلع والمنطقة.

مجموعة بيانات مرئية في ArcCatalog.

مجلد اتصال قاعدة البيانات في ArcCatalog.

مجموعة من البيانات ذات الصلة ، وعادة ما يتم تجميعها أو تخزينها معًا.

تم تخزين بيانات السمات بتنسيق dBASE.

يحدد مجموعة فرعية من عقد رقم تعريف دافع الضرائب (TIN) لإنشاء نسخة عامة من رقم التعريف الضريبي (TIN).

مسار وصول إلى جهاز تخزين البيانات.

أي رقم فاصلة عائمة يتم تخزينه كقيمة مزدوجة بدقة 64 بت.

سلسلة مشفرة لكلمات المرور.

أزواج الإحداثيات التي تحدد الحد الأدنى لمستطيل الإحاطة الذي يقع فيه مصدر البيانات.

نطاق قيمة المقياس وقيمة الزيادة المطبقة على المدخلات في عملية التراكب الموزون.

يحدد أزواج الإحداثيات التي تحدد الحد الأدنى للمستطيل المحيط (xmin و ymin و xmax و ymax) لمصدر البيانات. تقع جميع إحداثيات مصدر البيانات في هذه الحدود.

معلمة استخراج القيم.

مجموعة من البيانات المكانية بنفس نوع الشكل: نقطة ، ونقاط متعددة ، وخطوط متعددة ، ومضلع.

مجموعة من فئات المعالم التي تشترك في منطقة جغرافية مشتركة ونفس نظام الإسناد المكاني.

مرجع إلى فئة المعلم ، بما في ذلك الترميز وخصائص العرض.

ميزات تفاعلية ترسم الميزات عند تشغيل الأداة.

عمود في جدول يخزن قيم سمة واحدة.

تفاصيل حول حقل في خريطة المجال.

مجموعة من الحقول في جدول إدخال واحد أو أكثر.

يحدد موقعًا على القرص حيث يتم تخزين البيانات.

سطح نقطي يتم تمثيل قيم خليته بصيغة أو ثابت.

يحدد الخوارزمية المستخدمة في تشويش إدخال البيانات النقطية.

مجموعة بيانات ذات موضوع مشترك في قاعدة بيانات جغرافية.

كائن خشن يشير إلى قاعدة بيانات جغرافية.

شبكة خطية ممثلة بميزات الحافة والتقاطع الطوبولوجي. يعتمد اتصال الميزات على صدفتهم الهندسية.

مرجع إلى مصدر بيانات جيوإحصائي ، بما في ذلك الترميز وخصائص العرض.

حي البحث الجغرافي الإحصائي

يحدد معلمات جوار البحث لطبقة جيوإحصائية.

جدول القيمة الجيوإحصائية

مجموعة من مصادر البيانات والحقول التي تحدد طبقة إحصائية جغرافية.

مجموعة من الطبقات تظهر وتعمل كطبقة واحدة. تعمل طبقات المجموعة على تسهيل تنظيم الخريطة وتعيين خيارات ترتيب الرسم المتقدمة ومشاركة الطبقات لاستخدامها في خرائط أخرى.

العلاقة بين عامل التكلفة الأفقي وزاوية الحركة النسبية الأفقية.

بنية بيانات تُستخدم لتسريع البحث عن السجلات في قواعد البيانات وقواعد البيانات الجغرافية.

صيغة لتعريف ومعالجة البيانات في جدول INFO.

جدول في قاعدة بيانات INFO.

تخزن مجموعة بيانات LAS إشارة إلى ملف LAS واحد أو أكثر على القرص بالإضافة إلى ميزات السطح الإضافية. ملف LAS هو ملف ثنائي يخزن بيانات lidar المحمولة جواً.

طبقة تشير إلى مجموعة بيانات LAS على القرص. يمكن لهذه الطبقة تطبيق المرشحات على ملفات lidar وقيود السطح المشار إليها بواسطة مجموعة بيانات LAS.

مرجع إلى مصدر بيانات ، مثل ملف الشكل أو التغطية أو فئة معلم قاعدة البيانات الجغرافية أو البيانات النقطية ، بما في ذلك خصائص الترميز والعرض.

يخزن ملف الطبقة تعريف الطبقة ، بما في ذلك الترميز وخصائص العرض.

شكل ، مستقيم أو منحني ، محدد بسلسلة متصلة من أزواج إحداثيات x و y الفريدة.

نوع وحدة خطية وقيمتها مثل المتر أو الأقدام.

نطاق من أدنى وأعلى قيمة ممكنة للإحداثيات m.

مجموعة من البيانات النقطية والصورة تتيح لك تخزين البيانات وعرضها والاستعلام عنها. إنه نموذج بيانات في قاعدة البيانات الجغرافية المستخدمة لإدارة مجموعة من مجموعات البيانات النقطية (الصور) المخزنة ككتالوج ويتم عرضها كصورة موزعة.

طبقة تشير إلى مجموعة بيانات فسيفساء.

شكل المنطقة حول كل خلية يستخدم لحساب الإحصائيات.

خريطة ميدانية لفئة محلل الشبكة

التعيين بين خصائص الموقع في طبقة محلل الشبكة (مثل التوقفات والمرافق والحوادث) وفئة معلم النقطة.

إعدادات التسلسل الهرمي لمحلل الشبكة

سمة التدرج الهرمي التي تقسم قيم التدرج الهرمي لمجموعة بيانات الشبكة إلى ثلاث مجموعات باستخدام عددين صحيحين. يحدد العدد الصحيح الأول القيمة النهائية للمجموعة الأولى ، بينما يحدد الرقم الثاني القيمة الأولية للمجموعة الثالثة.

طبقة مجموعة خاصة تستخدم للتعبير عن مشاكل توجيه الشبكة وحلها. تمثل كل طبقة فرعية محفوظة في الذاكرة في طبقة محلل الشبكة بعض جوانب مشكلة التوجيه وحل التوجيه.

يمكن أن يكون مصدر بيانات الشبكة مجموعة بيانات محلية محددة إما باستخدام مسار الكتالوج الخاص بها أو طبقة من خريطة ، أو يمكن أن يكون عنوان URL للبوابة الإلكترونية.

مجموعة من عناصر الشبكة المتصلة طوبولوجيًا (الحواف والوصلات والمنعطفات) ، المشتقة من مصادر الشبكة والمرتبطة بمجموعة من سمات الشبكة.

مرجع إلى مجموعة بيانات شبكة ، بما في ذلك خصائص الترميز والعرض.

قاموس لأشياء وضع السفر.

نسيج الطرود عبارة عن مجموعة بيانات لتخزين وصيانة وتحرير السطح المستمر للطرود المتصلة أو شبكة الطرود.

طبقة تشير إلى قطعة قماش على القرص. تعمل هذه الطبقة كطبقة مجموعة تنظم مجموعة من الطبقات ذات الصلة تحت طبقة واحدة.

تسلسل متصل من أزواج إحداثيات س وص ، حيث يكون زوج الإحداثيات الأول والأخير متماثلين.

ملف يخزن معلومات النظام الإحداثي للبيانات المكانية.

يحدد ما إذا كان قد تم بناء الأهرامات.

يحدد النقاط المحيطة المستخدمة في الاستيفاء.

يحدد البذرة والمولد لاستخدامهما عند إنشاء قيم عشوائية.

طبقة في مجموعة بيانات نقطية.

تعبير الآلة الحاسبة النقطية

تعبير الآلة الحاسبة النقطية.

مجموعة من مجموعات البيانات النقطية المحددة في جدول. يحدد كل سجل جدول مجموعة بيانات نقطية فردية في الكتالوج.

مرجع إلى كتالوج البيانات النقطية ، بما في ذلك خصائص الترميز والعرض.

مجموعة بيانات واحدة تم إنشاؤها من واحد أو أكثر من البيانات النقطية.

مرجع إلى البيانات النقطية ، بما في ذلك خصائص الترميز والعرض.

يحدد ما إذا كان يتم إنشاء إحصاءات البيانات النقطية.

تتم إضافة البيانات النقطية إلى مجموعة بيانات فسيفساء من خلال تحديد نوع البيانات النقطية. يحدد نوع البيانات النقطية البيانات الوصفية ، مثل الإسناد الجغرافي وتاريخ الاستحواذ ونوع المستشعر بتنسيق نقطي.

اكتب الجدول التفاعلي في قيم الجدول عند تشغيل الأداة.

تفاصيل حول العلاقة بين الكائنات في قاعدة البيانات الجغرافية.

جدول يحدد كيفية إعادة تصنيف قيم الخلايا النقطية.

خصائص حدث قياس المسار

يحدد الحقول الموجودة في الجدول التي تصف الأحداث التي تم قياسها بواسطة نظام مسار مرجعي خطي.

تحتوي مجموعة البيانات التخطيطية على مجموعة من قوالب المخططات التخطيطية وفئات الميزات التخطيطية التي تشترك في نفس مجال التطبيق ، على سبيل المثال ، الماء أو الكهرباء.

فئة الرسم التخطيطي.

الطبقة التخطيطية هي طبقة مركبة تتكون من طبقات معالم بناءً على فئات المعالم التخطيطية المرتبطة بالقالب الذي يعتمد عليه الرسم التخطيطي.

يحدد المسافة والاتجاه اللذين يمثلان موقعين مستخدمين لتقدير الارتباط التلقائي.

البيانات المكانية بتنسيق ملف الشكل.

نظام الإحداثيات المستخدم لتخزين مجموعة بيانات مكانية ، بما في ذلك المجال المكاني.

صيغة لتعريف ومعالجة البيانات من قاعدة بيانات علائقية.

سلسلة مقنعة بواسطة أحرف *.

لا يتم تشفير النص عند استخدامه في البرمجة النصية.

تمثيل البيانات الجدولية لأغراض العرض والتحرير المخزنة في الذاكرة أو على القرص.

مرجع إلى تضاريس ، بما في ذلك خصائص الترميز والعرض. يتم استخدامه لرسم التضاريس.

يحدد عرض وارتفاع البيانات المخزنة في الكتلة.

يحدد الفترات الزمنية المستخدمة لحساب الإشعاع الشمسي في مواقع محددة.

نوع وحدة زمنية وقيمتها مثل الدقائق أو الساعات.

هيكل بيانات متجه يقسم المساحة الجغرافية إلى مثلثات متجاورة وغير متداخلة. رؤوس كل مثلث عبارة عن عينة من نقاط البيانات ذات قيم x و y و z.

مرجع إلى TIN ، بما في ذلك العلاقات الطوبولوجية والترميز وخصائص العرض.

الميزات التي يتم إدخالها إلى الاستيفاء.

الهيكل الذي يعرّف ويفرض قواعد تكامل البيانات للبيانات المكانية.

مرجع لطوبولوجيا ، بما في ذلك خصائص الترميز والعرض.

وظيفة تحويل المحلل المكاني.

مجموعة من أعمدة القيم.

قيمة بيانات يمكن أن تحتوي على أي نوع أساسي: منطقي وتاريخ ومزدوج وطويل وسلسلة.

تحدد العلاقة بين عامل التكلفة الرأسي وزاوية الحركة الرأسية النسبية.

يتم تخزين البيانات المكانية بتنسيق Vector Product Format.

يتم تخزين بيانات السمات في تنسيق Vector Product.

خدمة تغطية الويب (WCS) هي مواصفات مفتوحة لمشاركة مجموعات البيانات النقطية على الويب.

جدول يحتوي على بيانات لدمج بيانات نقطية متعددة عن طريق تطبيق مقياس قياس مشترك للقيم على كل خطوط نقطية ، مع وزن كل منها وفقًا لأهميتها.

يحدد البيانات لتراكب العديد من البيانات النقطية ، يتم ضرب كل منها بوزنها المحدد وتجميعها.


1 إجابة 1

لا توجد مسافة قبل القوس في متغير التعداد

يتم دمج مشتق s في سطر واحد.

اجعل الأسبقية طريقة متأصلة في الرمز المميز.

داخل الأسبقية ، تطابق على dereference من القيمة. هذا يتجنب انتشار & amp.

ليست هناك حاجة لـ lazy_static ، فقط قم بإنشاء هيكل ووضع regex فيه ، وإعادة استخدامه في الحلقة.

ليست هناك حاجة لمقدار كبير من تخصيص السلسلة. خذ & ampstr بدلاً من سلسلة وقم ببساطة بتقطيعها.

بدلاً من اقتطاع المدخلات بواسطة أحرف المشغل ، تخطي بعدد البايتات التي كان الحرف الأول منها.

ليست هناك حاجة لتحديد نوع التحليل.

يقوم الكود بقص اليسار عدة مرات فقط قم بذلك مرة واحدة.

ليست هناك حاجة لتحديد نوع قائمة الانتظار لأنه لا يمكن الاستدلال عليه.

ليست هناك حاجة لاستخدام @ يمكن ربط النمط فقط باستخدام الرمز المميز.

قم بإنشاء نوع جديد حول Vec & ltToken & gt للإشارة إلى أن البيانات بترتيب RPN. أنواع تتجنب الحاجة إلى التوثيق.

أنشئ أنواعًا متعددة من التعدادات ، أحدها بأقواس وأخرى بدونها. ثم هناك مكان أقل يصعب الوصول إليه. إذا كانت هناك مجموعات فرعية ، فيمكنك تضمين المجموعة الفرعية في المجموعة الشاملة.

يعتبر التعامل مع الخطأ أمرًا صعبًا جدًا بالنسبة للمستخدم النهائي. أقواس غير متطابقة تقتل البرنامج بدلاً من شرح الخطأ والسماح للمستخدم بالمتابعة. لا توجد طريقة (واضحة) للخروج من البرنامج بخلاف إنهاء البرنامج أو إغلاقه (مما ينتج عنه رسالة خطأ أخرى).

لست سعيدًا حقًا بالجانب التحليلي للشفرة ، لكنني لا أرى شيئًا أفضل واضحًا في الوقت الحالي.

كما أشار فرانسيس جاني ، يمكنك استدعاء Chars :: as_str للحصول على باقي السلسلة بعد سحب الحرف الأول:

لا أفهم الهدف من إنشاء بنية جديدة كاملة فقط لوظيفة الرمز المميز عند lazy_static! يمكن أن تفعل الشيء نفسه

وبالمثل ، لا أفهم فائدة استخدام lazy_static! عندما تستطيع التركيبات اللغوية العادية أن تفعل الشيء نفسه ^ _ ^.

lazy_static! يتطلب حاليًا تخصيص الكومة ولا يمكن استعادة هذه الذاكرة أبدًا حتى يتم إنهاء البرنامج.

إن إنشاء قيمة واستخدام مرجع لها أصبح آمنًا تمامًا من خلال دلالات Rust وأعمارها ، لذلك أجد نفسي أستخدم تخصيصات المكدس بشكل متكرر أكثر مما أفعله بلغة مثل C.

أنا أكره بشكل عام الأشخاص المنفردين من أي نوع ، للأسباب التي تم تبنيها عبر الإنترنت. في هذه الحالة ، يتم إنشاء المفرد في الثنائي النهائي ، مما يحسن المشكلة إلى حد ما.


يوجد مستويان من التفسير هنا: قذيفة ، و sed.

في الغلاف ، يتم تفسير كل شيء بين علامات الاقتباس الفردية حرفيًا ، باستثناء علامات الاقتباس الفردية نفسها. يمكنك بشكل فعال الحصول على اقتباس واحد بين علامات الاقتباس المفردة عن طريق كتابة "" (إغلاق اقتباس واحد ، اقتباس واحد حرفي ، عرض أسعار واحد مفتوح).

يستخدم Sed التعبيرات النمطية الأساسية. في BRE ، من أجل معالجتها حرفيًا ، يجب نقل الأحرف $. * [ ^ بشرطة مائلة للخلف ، باستثناء مجموعات الأحرف الداخلية ([...]). أحرف وأرقام و () <> +؟ | يجب عدم الاستشهاد به (يمكنك الابتعاد عن ذكر بعضها في بعض التطبيقات). التسلسلات (، ) ، n ، وفي بعض التطبيقات <، > ، + ، ؟ ، | والشرطة المائلة العكسية الأخرى + الأبجدية الرقمية لها معاني خاصة. يمكنك الابتعاد عن عدم اقتباس $ ^ في بعض المواضع في بعض التطبيقات.

علاوة على ذلك ، تحتاج إلى شرطة مائلة للخلف قبل / إذا كان سيظهر في regex خارج تعبيرات الأقواس. يمكنك اختيار حرف بديل كمحدد عن طريق الكتابة ، على سبيل المثال ، s

p ستحتاج إلى شرطة مائلة للخلف قبل المحدد إذا كنت تريد تضمينه في BRE. إذا اخترت حرفًا له معنى خاص في BRE وأردت تضمينه حرفيًا ، فستحتاج إلى ثلاث خطوط مائلة للخلف لا أوصي بهذا ، حيث قد يتصرف بشكل مختلف في بعض التطبيقات.

  • اكتب regex بين علامات الاقتباس المفردة.
  • استخدم "" للحصول على اقتباس واحد في التعبير العادي.
  • ضع الشرطة المائلة للخلف قبل $. * / [] ^ وهذه الأحرف فقط (ولكن ليس داخل التعبيرات بين قوسين). (من الناحية الفنية ، لا يجب وضع شرطة مائلة للخلف من قبل] لكنني لا أعرف تطبيقًا يتعامل مع] و ] بشكل مختلف خارج تعبيرات الأقواس.)
  • داخل تعبير القوس ، من أجل - ليتم التعامل معها حرفياً ، تأكد من أنها أول أو أخير ([abc-] أو [-abc] ، وليس [a-bc] ).
  • داخل تعبير القوس ، لكي تتم معالجة ^ حرفياً ، تأكد من أنه كذلك ليس أولاً (استخدم [abc ^] ، لا [^ أبك] ).
  • لتضمين] في قائمة الأحرف المطابقة بتعبير قوس ، اجعله الحرف الأول (أو الأول بعد ^ لمجموعة مرفوضة): [] abc] أو [^] abc] (لا [abc]] ولا [abc ]] ).
  • & amp و يجب أن يتم اقتباسهما بشرطة مائلة للخلف ، كما يفعل المحدِّد (عادةً /) والأسطر الجديدة.
  • متبوعًا برقم له معنى خاص. متبوعًا بحرف له معنى خاص (أحرف خاصة) في بعض التطبيقات ، و متبوعًا ببعض الأحرف الأخرى تعني c أو c اعتمادًا على التنفيذ.
  • باستخدام علامات الاقتباس المفردة حول الوسيطة (sed 's / ... / ... /') ، استخدم "" لوضع علامة اقتباس واحدة في النص البديل.

إذا كان التعبير العادي أو النص البديل يأتي من متغير shell ، فتذكر ذلك

  • التعبير العادي هو BRE وليس سلسلة حرفية.
  • في التعبير العادي ، يجب التعبير عن السطر الجديد كـ n (والذي لن يتطابق أبدًا ما لم يكن لديك كود sed آخر يضيف أحرفًا جديدة إلى مساحة النمط). لكن لاحظ أنه لن يعمل داخل تعبيرات الأقواس مع بعض تطبيقات sed.
  • في النص البديل ، يجب اقتباس & amp ، والأسطر الجديدة.
  • يجب أن يكون المحدِّد بين علامات الاقتباس (لكن ليس داخل تعبيرات الأقواس).
  • استخدم علامات الاقتباس المزدوجة للاستيفاء: sed -e "s / $ BRE / $ REPL /".

لا ترجع المشكلة التي تواجهها إلى استيفاء الصدفة وعمليات الهروب - فذلك لأنك تحاول استخدام صيغة التعبير العادي الموسعة دون تمرير خيار sed the -r أو --regexp-ext.

قم بتغيير خط sed الخاص بك من

وسيعمل كما أعتقد أنك تنوي.

يستخدم sed افتراضيًا التعبيرات العادية الأساسية (فكر في أسلوب grep) ، والتي تتطلب الصيغة التالية:

ما لم تكن ترغب في إقحام متغير shell في تعبير sed ، فاستخدم علامات الاقتباس المفردة للتعبير بالكامل لأنها تتسبب في تفسير كل شيء بينهما كما هو ، بما في ذلك الخطوط المائلة العكسية.

لذا إذا كنت تريد أن ترى sed s / (127 .0 .1 .1 ) s / 1 / ضع علامات اقتباس مفردة حولها ولن تلمس الصدفة الأقواس أو الخطوط المائلة العكسية الموجودة فيها. إذا كنت بحاجة إلى إقحام متغير shell ، فضع هذا الجزء فقط بين علامتي اقتباس مزدوجتين. على سبيل المثال

سيوفر لك ذلك عناء تذكر الأحرف الأولية للقذيفة التي لم يتم تجاوزها بعلامات الاقتباس المزدوجة.

أعتقد أنه من الجدير بالذكر أنه على الرغم من أن sed يعتمد على معيار POSIX ، والذي يحدد الدعم فقط للتعبير العادي الأساسي (BRE) ، فإن هناك نسختين مختلفتين من الأمر sed - BSD (Mac OS) و GNU (توزيعات Linux) . يطبق كل إصدار امتدادات مماثلة ، بالإضافة إلى امتدادات فريدة لمعيار POSIX ، ويمكن أن تؤثر على وظائف sed عبر منصات مختلفة. نتيجة لذلك ، قد تُترجم البنية الصحيحة للأمر sed ، التي تعمل كما هو متوقع في أحد الأنظمة ، إلى نتائج مختلفة تمامًا على نظام آخر. يمكن أن يؤدي هذا إلى سلوك غير متوقع فيما يتعلق باستخدام الأحرف الهاربة والخاصة.

تميل هذه الامتدادات لمعيار POSIX إلى أن تكون أكثر انتشارًا في إصدار GNU من sed ، وغالبًا ما توفر الراحة لتنسيق أقل صرامة ، خاصةً بالمقارنة مع إصدار BSD. ومع ذلك ، بينما يسمح GNU sed بوظائف بعض الأحرف الخاصة ، إلا أنها لا تزال غير متوافقة مع POSIX. بالإضافة إلى ذلك ، فإن الاختلاف الحقيقي الوحيد بين التعبير النمطي الأساسي والممتد (ERE) ، داخل GNU sed ، هو سلوك الأحرف الخاصة التالية:

بينما قد يكون هذا هو الحال ، فإن بعض الأحرف الخاصة لديها دعم محدود أو لا يوجد دعم على الإطلاق على BSD sed ، مثل "|" و "؟" و "+" ، لأنها تلتزم بشكل وثيق بمعايير بناء جملة POSIX. غالبًا ما يؤدي تضمين هذه الأحرف ، بطريقة مشابهة لتلك الموجودة في GNU sed ، إلى مشكلات في قابلية النقل ووظائف النصوص التي تستخدم sed. تجدر الإشارة أيضًا إلى أن بنية POSIX BRE لا تحدد معنى لبعض تسلسلات الهروب ، وأبرزها: | ، + ، ؟ ، `، '، & lt ،> ، b ، B ، w ، و دبليو.

بالنسبة لأولئك الذين يستخدمون إصدار BSD / Mac OS من sed ، قد يكون محاكاة سلوك بعض الأحرف الخاصة أمرًا صعبًا بعض الشيء ، ولكن يمكن القيام به في معظم الحالات. على سبيل المثال ، يمكن محاكاة + بطريقة متوافقة مع POSIX مثل: <1،> و ؟ سيبدو بالشكل التالي: <0،1> تسلسل أحرف التحكم ، ومع ذلك ، لا يتم دعمه عادةً. إذا كان ذلك ممكنًا ، فمن الأسهل بالتأكيد استخدام GNU sed ، ولكن إذا كنت بحاجة إلى وظائف على كلا النظامين ، فتذكر استخدام ميزات POSIX فقط ، لضمان إمكانية النقل. إذا كنت من مستخدمي Mac وترغب في الاستفادة من GNU sed بدلاً من BSD sed ، فقد تحاول تثبيت Homebrew وتنزيل GNU sed عبر سطر الأوامر: brew install gnu-sed.

لإنهاء الأمور ، يمكن للاختلافات في الإصدار أن تملي حقًا الشكل الذي قد تبدو عليه الصيغة الصحيحة ، أو ما هي الأحرف اللازمة للهروب. آمل أن يوفر هذا بعض السياق الإضافي للسؤال الأولي بالإضافة إلى الإجابة المقبولة ، ويساعد الآخرين في التفكير في كيفية المضي قدمًا ، بناءً على الهدف النهائي من استخدام البرنامج النصي والأوامر.


1 إجابة 1

هذا هو عملية شد الجفن السفلي وإخراج اللسان وقول & quotBeh-da! & quot (يابانية) أو & quotNyaaaah! & quot (اللغة الإنجليزية يصفها). تعبير طقسي للغاية عن الازدراء أو الرفض، تستخدم حصريًا من قبل الأطفال والبالغين غير الناضجين. بشكل أساسي ، مثل الفعل الغربي المتمثل في إخراج اللسان ، قام برفع بعض الشقوق ، على الرغم من أنه بالتأكيد ليس لفتة نابية.

يشار إلى هذا في اليابان باسم كانبي (فساد أكاي لي، & quotred eye & quot) ، وتسمى mon oeil (& quotmy eye & quot) في فرنسا وكيبيك. هذا في الواقع مجاز ثقافي فرنسي ياباني ، لكنك ستراه في كل مكان في الرسوم المتحركة.

لم أجد رابطًا مرضيًا أو موثوقًا بما يكفي لأصله (أصوله) ولكن من ويكي akanbe يبدو أنه يعود إلى القرن العشرين:

تم ذكر استخدام المصطلح لأول مرة من قبل مؤلف أوائل القرن العشرين كاتاي تاياما ، في قصته عام 1909 Inaka Kyōshi (田 舎 ​​教師 Rural Teacher) ، كبادرة استخدمها الطلاب الذكور في القصة.


شاهد الفيديو: Join attributes by location with QGIS