Exrex - طرق غير منتظمة على التعبيرات العادية


Exrex هو أداة سطر الأوامر ووحدة python التي تقوم بإنشاء سلاسل مطابقة أو عشوائية لكل تعبير عادي محدد والمزيد. إنه بيثون نقي ، بدون تبعيات خارجية.
هناك تعبيرات عادية ذات سلاسل مطابقة لا نهائية (مثل [a-z]+:) ، في هذه الحالات ، exrex تحدد الحد الأقصى لطول الأجزاء اللانهائية.
يستخدم Exrex المولدات ، لذلك لا يعتمد استخدام الذاكرة على عدد السلاسل المطابقة.

المميزات
  • توليد جميع السلاسل المطابقة
  • توليد سلسلة مطابقة عشوائية
  • حساب عدد السلاسل المطابقة
  • تبسيط التعبيرات العادية

التثبيت
لتثبيت 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 - regular expression string generator
 
 positional arguments:
   REGEX                 REGEX string
 
 optional arguments:
   -h, --help            show this help message and exit
   -o FILE, --output FILE
                         Output file - default is STDOUT
   -l N, --limit N       Max limit for range size - default is 20
   -c, --count           Count matching strings
   -m N, --max-number N  Max number of strings - default is -1
   -r, --random          Returns a random string that matches to the regex
   -s, --simplify        Simplifies a regular expression
   -d DELIMITER, --delimiter DELIMITER
                         Delimiter - default is \n
   -v, --verbose         Verbose mode
أمثلة:
$ 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/ 

المرح / الفنون
  • قارب: exrex '( {20}(\| *\\|-{22}|\|)|\.={50}| ( ){0,5}\\\.| {12}~{39})'
  • عيون: exrex '(o|O|0)(_)(o|O|0)'

مشاريع مشابهة
أدوات تقوم بإنشاء قائمة بكافة السلاسل الممكنة التي تتطابق مع نمط محدد:
  • regldg (ميزات عرض حي على الموقع)
  • regex-genex (يدعم استخدام أنماط regex متعددة في وقت واحد)
الأدوات التي تنشئ سلاسل عشوائية ، واحدة تلو الأخرى ، تتطابق مع نمط محدد:
  • randexp.js (يضم العديد من العروض الحية على الموقع)
  • rstr.xeger (طريقة من rstrوحدات بايثون)

جانبي
  • python -m cProfile exrex.py '[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]' -o /dev/null
  • python -m cProfile exrex.py '[0-9]{6}' -o /dev/null


Commentaires

Posts les plus consultés de ce blog