
طرق غير نمطية للتعبيرات العادية
طرق غير اعتيادية للتعبيرات المنتظمة.
Exrex هي أداة سطر أوامر ووحدة بايثون تولد كل - أو عشوائيًا - السلاسل المطابقة لتعبير منتظم معين وأكثر من ذلك. إنها بايثون نقية، بدون اعتماديات خارجية.
هناك تعبيرات منتظمة تحتوي على سلاسل مطابقة لا نهائية (مثل: [a-z]+)، في هذه الحالات يحد exrex الطول الأقصى للأجزاء اللانهائية.
يستخدم exrex المولدات (generators)، لذا فإن استخدام الذاكرة لا يعتمد على عدد السلاسل المطابقة.
الميزات
لتثبيت exrex، ببساطة:
$ pip install exrex
أو
$ easy_install exrex
>>> import exrex
>>> exrex.getone('(ex)r\\1')
'exrex'
>>> list(exrex.generate('((hai){2}|world!)'))
['haihai', 'world!']
>>> exrex.getone('\d{4}-\d{4}-\d{4}-[0-9]{4}')
'3096-7886-2834-5671'
>>> exrex.getone('(1[0-2]|0[1-9])(:[0-5]\d){2} (A|P)M')
'09:31:40 AM'
>>> exrex.count('[01]{0,9}')
1023
>>> print '\n'.join(exrex.generate('This is (a (code|cake|test)|an (apple|elf|output))\.'))
This is a code.
This is a cake.
This is a test.
This is an apple.
This is an elf.
This is an output.
>>> print exrex.simplify('(ab|ac|ad)')
(a[bcd])
> exrex --help
usage: exrex.py [-h] [-o FILE] [-l] [-d DELIMITER] [-v] REGEX
exrex - مولد سلاسل التعبيرات المنتظمة
الوسائط الموضعية:
REGEX سلسلة REGEX
الوسائط الاختيارية:
-h, --help عرض رسالة المساعدة هذه والخروج
-o FILE, --output FILE
ملف الإخراج - الافتراضي هو STDOUT
-l N, --limit N الحد الأقصى لحجم النطاق - الافتراضي هو 20
-c, --count عد السلاسل المطابقة
-m N, --max-number N الحد الأقصى لعدد السلاسل - الافتراضي هو -1
-r, --random إرجاع سلسلة عشوائية تطابق التعبير المنتظم
-s, --simplify تبسيط تعبير منتظم
-d DELIMITER, --delimiter DELIMITER
الفاصل - الافتراضي هو \n
-v, --verbose وضع الإسهاب
أمثلة:
$ exrex '[asdfg]'
a
s
d
f
g
$ exrex -r '(0[1-9]|1[012])-\d{2}'
09-85
$ exrex '[01]{10}' -c
1024
أخطاء أو اقتراحات؟ قم بزيارة متتبع المشكلات.
http://exrex.readthedocs.org/en/latest/
re.sre_parse.CATEGORIES) (30%)n سلسلة مطابقة عشوائية مختلفةexrex هو برنامج حر: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو أفيرو العمومية العامة كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.
يتم توزيع exrex على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى بدون الضمان الضمني للقابلية للتسويق أو الملاءمة لغرض معين. راجع رخصة جنو أفيرو العمومية العامة لمزيد من التفاصيل.
يجب أن تكون قد استلمت نسخة من رخصة جنو أفيرو العمومية العامة مع exrex. إذا لم يكن الأمر كذلك، فانظر < http://www.gnu.org/licenses/ >.
(C) 2012- by Adam Tauber, <[email protected]>
exrex '( {20}(\| *\\|-{22}|\|)|\.={50}| ( ){0,5}\\\.| {12}~{39})'exrex '(o|O|0)(_)(o|O|0)'أدوات تولد قائمة بجميع السلاسل الممكنة التي تطابق نمطًا معينًا:
أدوات تولد سلاسل عشوائية، واحدة تلو الأخرى، تطابق نمطًا معينًا:
rstr في بايثون)python -m cProfile exrex.py '[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]' -o /dev/nullpython -m cProfile exrex.py '[0-9]{6}' -o /dev/null