Double Commander

2.14.صيغة عادية

المحتوى

1. مقدمة
2. مطابقة بسيطة
3. تسلسل الهروب
4. فئة الأحرف
5. الحروف الفوقية
5.1. الحروف الوصفية-الفصل بين الصفوف
5.2. الفئة المحددة مسبقا
5.3. الحروف-حدود الكلمة
5.4. الحرف الفوقي-المكرر
5.5. الحروف الوصفية-البدائل
5.6. الحروف الوصفية-تعبير فرعي
5.7. الأحرف الفوقية-مرجع عكسي
6. (و أَن هُمْ و أَن هُمْ و أَن هُمْ)
7. مجموعات الصيد غير المصيدة
8. المجموعة الذرية
9. فئة Unicode
10. المعدلات

يستخدم Double Commander مكتبةTRegExprالمجانية التي كتب ها أندري سوروكين.

معظم التفسيرات تأتي من ملفات المساعدة في المكتبة.

1.مقدمة

التعبير العادي هو طريقة تستخدم على نطاق واسع ل تحديد وضع البحث النصي.تسمح ل نا الأحرف الخاصة (الأحرف الوصفية)ب تحديد ، على سبيل المثال ، السلسلة النصية المحددة التي نبحث عن ها تظهر في بداية الصف أو نهايت ه، أوn الذي يحتوي على أحرف أو مجموعات حرفية.

يدعم Double Commander التعبير العادي في الميزات التالية:

تدعم مكتبة TRegExp نوعين من وضع التشغيل: ANSI و Unicode.عند البحث في ملف نصي ، يستخدم Double Commander كلي هما (اعتمادا على رمز الملف).استخدم Unicode عند البحث ب حسب الاسم.

2.مطابقة بسيطة

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

سلسلة من الأحرف تتطابق مع هذه السلسلة في السلسلة المستهدفة ، و ب التالي النمطbluhس يتطابق مع سلسلة الهدفbluh

يمكن نا إضافة خط مائل مضاد قبلحرف أوتسلسل الهروب\ل كي يتم تفسير ها حرفياً ، مثل: الأحرف الوصفية^بداية السلسلة و لكن\^مطابقة الحروف^\\مطابقة\انتظر.

و فيما يلي بعض الأمثلة:

مثال بسيط على التطابق
نتيجةالتعبير
foobar
مطابقة سلسلة النصfoobar
^FoBarPtr
مطابقة^FooBarPtr

3.تسلسل الهروب

يمكن استخدام قواعد تسلسل الهروب مماثلة ل تلك المستخدمة في C و Perl ل تحديد الأحرف:\nمطابقة السطر ،\tمطابقة العلامات ، الخ.

و ب شكل أعم ،\xnnو من هاnnسلسلة من الأرقام السداسية العشرية التي تتطابق مع قيمة ASCIInnالحرف.

إذا كنت ب حاجة إلى رمز أحرف واسعة (Unicode) ، يمكن ك استخدام ها\x{nnnn}و من هاnnnn –واحد أو أكثر من الأرقام الست عشرية.

تسلسل الهروب
نتيجةالتعبير
\xnn
رمز ASCIInnالأحرف
\x{nnn}
رمز ASCIInnnnالأحرف (النص العادي هو بايت واحد ، Unicode هو بايتين)
\t
علامة الساعات (HT/TAB) ، و\x09نفس الشيء
\n
السطر (NL/LF) ، مع\x0aنفس الشيء
\r
العودة (CR) مع\x0dنفس الشيء
\f
تغيير صفحة (FF) و\x0cنفس الشيء
\a
الإنذار (BEL) ، مع\x07نفس الشيء
\e
الهروب (ESC) ، مع\x1bنفس الشيء

و فيما يلي بعض الأمثلة:

أمثلة على تسلسل الهروب
نتيجةالتعبير
fo\x20bar
مطابقةfoo bar(انظر المسافة في الوسط)
\tfoobar
المطابقة محددة مسبقا من قبل علامة الجدولfoobar

4.فئة الأحرف

يمكن ك وضع قائمة الأحرف.[]تحديد فئة الأحرف التي س تطابق أي حرف في القائمة.

إذا[الحرف الأول بعد ذلك هو^أي حرفغيرمدرج في قائمة التطابق.

في القائمة ،-يتم استخدام الأحرف ل تحديدنطاق ، ل ذلكa-zو أشار إلى أنaإلىzجميع الأحرف ب ما في ذلك.

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

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

فئة الأحرف
نتيجةالتعبير
[-AZ]
مطابقةazو-
[أ ع]
مطابقةazو-
[أ/-ض]
مطابقةaz(أ)-
[أ-ض]
مطابقة منaإلى الوصولzجميع الحروف الـ 26 الصغيرة
[\n--\x0D]
مطابقة ل أي\x10\x11\x12\x13
[/د-t]
مطابقة أي رقم ،-أو.t
[]-a]
مطابقة من]إلى الوصولaأي حرف.

و فيما يلي بعض الأمثلة:

أمثلة على فئة الأحرف
نتيجةالتعبير
foob[aeiou]r
البحث عن سلسلةfoobarfooberانتظر ، و لكن لا تشملfoobbrfoobcrانتظر.
foob [^aiou]r
البحث عن سلسلةfoobbrfoobcrانتظر ، و لكن لا تشملfoobarfooberانتظر.

5.الحرف الفوقي

الأحرف الوصفية هي جوهر التعبير العادي ، هو حرف خاص.

هناك أنواع مختلفة من الأحرف الوصفية ك ما هو موضح أدنا ه.

5.1.الحروف الوصفية-الفصل بين الصفوف

بعض التعابير تساعد على اكتشاف فصل الصف.

الفاصل بين الصفوف
نتيجةالتعبير
^
الفصل الأول
$
النهاية
\A
بداية النص
\Z
نهاية النص
.
أي حرف في الصف

و فيما يلي بعض الأمثلة:

مثال على الفاصل بين الصفوف
نتيجةالتعبير
^Foobar
فقط في سلسلةfoobarمطابقة في البداية.
foobar$
فقط في سلسلةfoobarمتطابقة مع النهاية
^foobar$
فقط في السلسلةfoobarالسلسلة الوحيدة في السطر
foob.r
مطابقة مثلfoobarfoobbrfoob1rفي انتظار السلسلة

و ب صفة افتراضية ،^تضمن الأحرف الوصفية تطابق ها فقط في بداية سلسلة الإدخال/النص ،$يتم تطابق الأحرف في النهاية فقط.الفصل بين الصفوف المضمنة لن يكون^أو.$المطابقة.

و مع ذلك ، قد ترغب في اعتبار السلسلة ك مخزن عازل متعدد الأسطر ، و هكذا^(و إِن هُمْ يَتَوْمَعُونَ) أي: أي: أي: يُتَوَقَّعُونَ.$س يتم تطابق ها قبل أي صف فاصل.يمكن ك القيام ب ذلك عن طريق فتحالمعدل m.

\A(أ)\Zمثل^(أ)$نفس الشيء ، و لكن عند استخدامالمعدل m ، ف إن ها لا تتطابق عدة مرات ، و^(أ)$س يتم مطابقت ها في كل صف داخلي.

و ب صفة افتراضية ،.تطابق الأحرف الوصفية أي حرف ، و لكن إذا تم إيقاف تشغيلالمعدل s ،.لا تتطابق مع الفاصلات الصفية المضمنة.

يقوم TRegExpr ب معالجة الفاصل الصفوفوفقا ل معيار Unicode التقني (المعيار الفني رقم 18):

يرجى ملاحظة ،^.*$(وضع الخيار) لا يوجد\x0D\x0Aسلسلة فارغة في السلسلة ، و لكن في\x0A\x0Dتتطابق سلسلة فارغة في التسلسل.

5.2.الفئة المحددة مسبقاً

تساعد بعض التعابير على اكتشاف مجموعات الأحرف.

الفئة المحددة سلفا
نتيجةالتعبير
\w
الأحرف الأبجدية الرقمية (ب ما في ذلك)_(أي).[0-9A-Za-z_]
\W
أحرف غير أبجدية رقمية
\d
الأحرف الرقمية
\D
الأحرف غير الرقمية
\s
أي حرف مسافة (مع[ \t\n\r\f]نفس الشيء)
\S
أحرف غير مسافة

يمكن ك استخدام ها فيفئات الأحرفالمخصصة\w\dو\s

و فيما يلي بعض الأمثلة:

أمثلة على فئة التعريف المسبق
نتيجةالتعبير
foob\dr
مطابقة مثلfoob1rfoob6rالسلسلة و لكن لا تشملfoobarfoobbrالانتظار
foob [\w\s]r
مطابقة مثلfoobarfoob rfoobbrالسلسلة و لكن لا تشملfoob=rالانتظار

5.3.الحروف-حدود الكلمة

الحدود (\bعلى جانب ها.\wعلى الجانب الآخر هناك\Wالموضع بين الحرفين (في أي ترتيب) ، يتم احتساب الأحرف الافتراضية في بداية السلسلة و نهايت ها ك مطابقة\W

كلمة حدود
نتيجةالتعبير
\b
كلمات مطابقة حدود
\B
مطابقة الحدود غير الكلمات

5.4.الحرف الفوقي-المكرر

يمكن ل أي عنصر من التعبير العادي أن يتبع نوع آخر من مكرر الأحرف الوصفية.

ب استخدام هذه الأحرف الوصفية ، يمكن ك تحديد عدد المرات التي ظهر في ها الحرف السابق أو الحرف الوصفي أو التعبير الفرعي.

مكرر
نتيجةالتعبير
*
صفر أو أكثر ("الجشع ") ، مماثل{0,}
+
مرة واحدة أو أكثر ("الجشع ") ، مماثل{1,}
?
صفر أو مرة واحدة ("الجشع ") ، مماثل{0,1}
{ن}
الصادقةnالتالي ("الجشع ")
{ن ،}
على الأقلnالتالي ("الجشع ")
{ن ، م}
الأقلnالتالي و لكن ليس أكثرmالتالي ("الجشع ")
*?
صفر أو أكثر ("غير جشع ") ، مماثل{0,}?
+?
مرة واحدة أو أكثر ("غير جشع ") ، مماثل{1,}?
??
صفر أو مرة واحدة ("غير الجشع ") ، مماثل{0,1}?
{n}؟
الصادقةnثانيًا ("غير جشع ")
{n,}?
الأقلnثانيًا ("غير جشع ")
{ن ، م}؟
على الأقلnالتالي و لكن ليس أكثرmثانيًا ("غير جشع ")

و ب التالي ف إن الشكل هو{n,m}الأرقام الواردة بين قوسين تحديدالحد الأدنىل عددالبنود المطابقةnوأقصى عددm

الشكل{n}مماثل{n,n}يطابق تماماnالتالية.

الشكل{n,}مطابقةnثانية أو أكثر.

nأوmلا يوجد حد ل لحجم ، و لكن الأرقام الكبيرة تبطئ التنفيذ و تستهلك المزيد من الذاكرة.

إذا ظهرت الأقواس في أي سياق آخر ، ف إن ها تعتبر حرفًا عاديًا.

و فيما يلي بعض الأمثلة:

أمثلة على المكرر
نتيجةالتعبير
foob.*ص-
مطابقة مثلfoobarfoobalkjdflkj9r(أ)foobrفي انتظار السلسلة
foob.+ص-
مطابقة مثلfoobarfoobalkjdflkj9rالسلسلة و لكن لا تشملfoobr
foob.?ص-
مطابقة مثلfoobarfoobbr(أ)foobrالسلسلة و لكن لا تشملfoobalkj9r
fooba{2}(ص)
مطابقة سلسلة النصfoobaar
fooba{2,}(ص)
مطابقة مثلfoobaarfoobaaarfoobaaaarفي انتظار السلسلة
fooba{2,3}(ص)
مطابقة مثلfoobaarأوfoobaaarالسلسلة و لكن لا تشملfoobaaaar

تفسير قليل عن "الجشع".

"الجشع" يأخذ قدر الإمكان ، و "غير الجشع" يأخذ أقل قدر ممكن.

على سبيل المثال ،b+(أ)b*تطبيق على السلاسلabbbbcالعودةbbbbb+?العودةbb*?ارجع إلى سلسلة فارغة ،b{2,3}?العودةbbb{2,3}العودةbbb

يمكن ك تغيير جميع التكرارات إلى وضع "غير جشع"(انظر المعدل g).

5.5.الحروف الوصفية-بدائل

يمكن ك استخدام ها|و تحديد النماذج عن طريق تقسيم مجموعةمن البدائل، و ب التاليfee|fie|foeس يتطابق مع سلسلة الهدفfeefieأو.foef(e|i|o)eو هذا هو الحال أيضا).

البديل الأول يشمل الفاصل النمطي السابق (([أو نمط بداية) إلى الأول|جميع المحتويات ، و البديل الأخير يحتوي على البديل من آخر|كل شيء إلى فصل النمط التالي.

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

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

و هذا يعني أن البدائل ليست ب الضرورة جشعة.

على سبيل المثال: عند استخدام هاfoo|footمطابقةbarefootعند ما فقطfooس يتم مطابقة جزئياً ل أن هذا هو البديل الأول الذي جرى محاولت ه ، و أن ه يتطابق ب نجاح مع السلسلة المستهدفة. (قد لا يكون هذا مهمًا عند ما نستخدم الأقواس ل التقاط النص المطابق.)

و تذكر أيضا ،|يتم تفسير ها حرفيا بين أقواس معقوفة ، ل ذلك إذا كنت تكتب[fee|fie|foe]في الواقع ، لا تتطابق إلا[feio|]

مثال:

أمثلة على البدائل
نتيجةالتعبير
foo(bar)| foo)
مطابقة سلسلة النصfoobarأوfoofoo

5.6.الحروف الوصفية-تعابير فرعية

هيكل الأقواس( ... )و يمكن أيضا استخدام ها ل تعريف التعبير الفرعي العادي.

بعد البحث ، يمكن ك استدعاء أي تعبير فرعي ، و يمكن ك أيضًا استخدام التعابير الفرعية ك قناع.

يتم ترقيم التعابير الفرعية وفقًا ل ترتيب الأقواس اليسرى من اليسار إلى اليمين.

يتم ترقيم التعبير الفرعي الأول 1 و يدعم ما يصل إلى 90 تعبيرا فرعيا (التعبير العادي ب أكمل ه رقم مطابقة 0 يمكن ك استبدال ه إلى$0أو.$&)。

و فيما يلي بعض الأمثلة:

تعبير فرعي
نتيجةالتعبير
(foobar){8,10}
المطابقة تحتوي على 8 أو 9 أو 10foobarسلسلة من الأمثلة
foob ([0-9]|(أ+)(ص)
مطابقةfoob0rfoob1rfoobarfoobaarfoobaarالانتظار

ملاحظات ب شأن "الاستعاضة عن ":

مثال:

دعو نا نحدد التاريخ21.01.2018عكس إلى2018.01.21
البحث:(\d{2})\.(\d{2})\.(\d{4})
يستعاض عن ها ب ما يلي:$3.$2.$1

5.7.الأحرف الفوقية-مرجع عكسي

الحروف الفوقية\1إلى الوصول\9تم تفسير ها على أن ها مرجع عكسي.\nمطابقة التعبير الفرعي المطابق سابقاًn

و فيما يلي بعض الأمثلة:

أمثلة على الإشارة المعاكسة
نتيجةالتعبير
(.)\ 1+
مطابقةaaaa(أ)cc
(.+)\ 1+
كما يتطابقabab(أ)123123
(['"]?) (\d +)\1
مطابقة"13"(في اقتباس مزدوج) ،'4'(في علامات اقتباس واحدة) أو77(ب دون علامات)

6. (و أَن هُمْ و أَن هُمْ و أَن هُمْ)

و يؤكد على المستقبل:foo(?=bar)فقط فيbarالسابق مطابقةfooوbarلا يتم تضمين ها في المطابقة.

تأكيد سلبي على المستقبل:foo(?!bar)لا تتبع فقط في الخلفbarوقت مطابقةfoo

و يؤكدون إلى الخلف:(?<=foo)barفقط فيfooبعد مطابقةbarوfooلا يتم تضمين ها في المطابقة.

و قَالَ:(?<!foo)barلا يوجد فقط أمامfooالبداية متطابقةbar

القيود:

7.مجموعات الصيد غير المصيدة

اللغة:(?:expr)

و لا يوجد "فهرس" ل هذه المجموعات و لا يمكن رؤية المراجع العكسية.عند ما نريد تجميع التعابير الثنائية و لكن نا لا نريد حفظ ها ك جزء مطابقة/التقاط من السلسلة ، نستخدم مجموعة غير التقاط.استخدام مجموعة غير التقاط يمكن تسريع عمل التعبيرات العادية.

مجموعات الصيد غير المصيدة
نتيجةالتعبير
(https?| ftp):/([^/\r\n]+)
ف يhttps://doublecmd.sourceforge.ioمطابقةhttpsوdoublecmd.sourceforge.io
(?: https?| ftp):/([^/\r\n]+)
ف يhttps://doublecmd.sourceforge.ioمتطابقة فقطdoublecmd.sourceforge.io

8.المجموعة الذرية

اللغة:(?>expr|expr|...)

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

على سبيل المثال ،a(bc|b)cمطابقةabcc(أ)abca(?>bc|b)cمطابقةabccو لكن لا يتطابقabcل أن المحرك ممنوع من العودة إلى الوراء و محاولة تعيين المجموعة إلىb

9.فئة Unicode

يقوم معايير Unicode ب تسمية فئات الأحرف.هذه هي سلسلة من الحروف.مثلاLuحروف كبيرة ،Llالحروف الصغيرة.فئة كبيرة من الحروف 1Lكل الحروف.

الأصلية
فئة Unicode
وصفالفئة
الحروف
L
Lu
حروف كبيرة
LL
الحروف الصغيرة
Lt
العنوان الحرفي
رمز
Lm
Lo
حروف أخرى
علامة
M
Mn
علامة غير المسافة
Mc
علامة التباعد
أنا
مغلق علامة
N
الأرقام
Nd
الأرقام العشرية
Nl
الأبجدية
لا
أرقام أخرى
علامات
P
علامة موصل
Pc
علامة
Pd
نقاط فتح
العطاءات
Pe
إغلاق علامة
علامة
Pi
علامة في نهاية
Pf
Po
علامات أخرى
S
رمز
رموز الرياضيات
SM
Sc
رمز العملة
رمز التعديل
Sk
سو
الرموز الأخرى
الفصل
Z
الفاصل المسافة
Zs
الفصل بين الصف
Zl
الفصل بين الفقرات
Zp
جيم
-مصادر أخرى
سيطرة
C
صيغة
Cf
C
وكيل
Co
الاستخدام الخاص
م م
غير موزع

الحرف الفوقي\pيشير إلى حرف Unicode من الفئة المحددة.اللغة:\pL(أ)\p{L}اسم حرف واحد ،\p{Lu}يستخدم اسم حرفين.

الحروف الفوقية\Pهو عكسي ، و هو يشير إلى حرف Unicode غير موجود في الفئة المحددة.

هذه الأحرف الوصفية مدعومة أيضًا في فئات الأحرف.

10.المعدلات

لغة التعديلات الفردية:(?i)فتحت ،(?-i)و أشار إلى إغلاق.يسمح ب تعديلات متعددة مثل:(?msgxr-imsgxr)

يتم استخدام المعدل ل تغيير سلوك التعبير العادي.التعديلات تؤثر فقط(?imsgxr-imsgxr)قسم التعبير العادي بعد عامل التشغيل.

يمكن تضمين أي من هذه المعدلات في التعبير العادي نفس ه.إذا تم تضمين المعدل في تعبير فرعي ، ف إن ه يؤثر فقط على هذا التعبير الفرعي.

(ط)
قم ب تطابق الوضع ب صرف النظر عن الأحرف الكبيرة (ب استخدام الإعدادات الإقليمية المثبتة في النظام).الإغلاق الافتراضي.
(م)
فكر في السلسلة كأسطر متعددة.أي:^(أ)$تغيير من بداية أو نهاية سلسلة نصية مطابقة فقط إلى بداية أو نهاية أي صف في السلسلة المطابقة ، راجعأيضًا الفاصل بين الصفوف.الإغلاق الافتراضي.
ق
فكر في السلسلة على أن ها ذات اتجاه واحد.أي:.التغيير ل مطابقة أي حرف ، حتى فاصل الصف (انظرأيضًا فاصل الصف) ، و هو لا يتطابق عادةً.فتح افتراضي.
(ز)
المعدلات غير القياسية.س يؤدي إيقاف تشغيل ه إلى تبديل جميع عوامل التشغيل اللاحقة إلى وضع غير جشع (يفتح هذا المعدل افتراضيًا).إذا كان التعديلgإغلاق ، إذا+طريقة العمل هي+?*طريقة العمل هي*?انتظر.
x
قم ب توسيع قراءة الوضع عن طريق السماح ل ل مسافات و التعليقات (انظر الملاحظات أدنا ه).الإغلاق الافتراضي.
ص-
المعدلات غير القياسية.إذا تم تعيين ه ، ف إن النطاقа-яب الإضافة إلى الحروف الروسيةёА-ЯإضافةЁа-Яتشمل جميع الحروف الروسية.فتح افتراضي.
#
(?#النص): ملاحظات ،textتم تجاهل ها.يرجى ملاحظة أن TregExpr شاهد)عند إغلاق التعليقات ، ل ذلك لا يمكن وضع ها حرفيا في التعليقات)

و فيما يلي بعض الأمثلة:

Perl Extended مثال
نتيجةالتعبير
(? i) Saint-Petersburg
مطابقةSaint-petersburgوSaint-Petersburg
(? i)Saint-(?-- i)Petersburg
مطابقةSaint-Petersburgو لكن لا يتطابقSaint-petersburg
(? i)(Saint-)? Petersburg
مطابقةSaint-petersburgوsaint-petersburg
((? i)Saint-)? Petersburg
مطابقةsaint-Petersburgو لكن لا يتطابقsaint-petersburg

المعدلاتxفي حد ذات ه ، يحتاج الأمر إلى مزيد من التفسير.

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

يمكن ك استخدام ه ل تقسيم التعبير العادي إلى أجزاء (قليلا) أكثر قابلية ل ل قراءة.

#تعتبر الأحرف أيضًا أحرفًا تعريفية ل إدخال التعليقات ، مثل:

(
  (abc) # 注释1
    |   # 您可以使用空格来格式化正则表达式 - TRegExpr会忽略它
  (efg) # 注释2
)

و هذا يعني أيضًا إذا كنت ترغب في استخدام مسافة حقيقية في الوضع أو#الأحرف (خارج فئة الأحرف ، لا تتأثرxالتأثير) يجب أن تهرب من ها أو استخدام ثماني أو سداسي عشرية ل ل ترميز.

ب شكل عام ، تحسن هذه الميزات ب شكل كبير من قراءة نص التعبير العادي.


有效的HTML 4.0过渡 CSS有效!