Requlyar ifadə (qısa şəkildə regex və ya regexp), və ya rasional ifadə — mətndə nümunə uyğunluğunu təyin edən simvollar ardıcıllığı və mətndə axtarışı və altsətirlərlə manipulyasiyanı yerinə yetirən formal dil. Adətən, belə nümunələr sətirlərdə "tap" və ya "tap və dəyişdir" əməliyyatları və ya daxilolmaların yoxlanılması üçün sətir axtarış alqoritmləri tərəfindən istifadə olunur. Requlyar ifadə üsulları və formal dil nəzəriyyəsində inkişaf etdirilir.
Requlyar ifadələr anlayışı 1950-ci illərdə amerikalı riyaziyyatçı anlayışını rəsmiləşdirdiyi zaman başlamışdır. Onlar, Unix mətn emal yardım proqramları ilə ümumi istifadəyə verilib. 1980-ci illərdən requlyar ifadələrin yazılması üçün müxtəlif sintaksislər mövcuddur ki, bunlardan biri POSIX standartı, digəri isə geniş istifadə olunan Perl sintaksisidir.
Requlyar ifadələr axtarış sistemlərində, mətn prosessorlarının və mətn redaktorlarının axtarış və dəyişdirmə dialoqlarında, sed və kimi mətn emal proqramlarında və leksik təhlildə istifadə olunur. Requlyar ifadələr bir çox proqramlaşdırma dillərində də dəstəklənir.
Tarixi
Requlyar ifadələr 1951-ci ildə riyaziyyatçı requlyar hadisələr adlanan riyazi yazısından istifadə edərək requlyar dilləri təsvir edərkən yaranmışdır. Bunlar nəzəri kompüter elmində, avtomatlar nəzəriyyəsinin alt sahələrində (hesablama modelləri) və formal dillərin təsviri və təsnifatında yaranmışdır. Nümunə uyğunluğunun digər erkən tətbiqlərinə requlyar ifadələr əvəzinə öz nümunə uyğunluq konstruksiyalarından istifadə edən SNOBOL dili daxildir.
Requlyar ifadələr 1968-ci ildən iki istifadədə populyarlaşmağa başladı: mətn redaktorunda nümunə uyğunluğu və kompilyatorda leksik təhlil. Proqram şəklində requlyar ifadələrin ilk ortaya çıxışlarından biri Ken Tompsonun mətn fayllarında nümunələri uyğunlaşdırmaq üçün bir vasitə olaraq redaktorunda Klin yazısını qurması idi. Sürət üçün Tompson JIT kompilyasiyasının mühüm erkən nümunəsi olan CTTS-də IBM 7094 koduna JIT ilə requlyar ifadə uyğunluğunu tətbiq etdi. Daha sonra o, bu funksiyanı adlı Unix redaktoruna əlavə etdi və nəticədə məşhur axtarış aləti grep-in requlyar ifadələrdən istifadə etməsinə səbəb oldu.
Həmçinin bax
İstinadlar
- Goyvaerts, Jan. . Regular-Expressions.info. 2016-11-01 tarixində . İstifadə tarixi: 2016-10-31.
- Mitkov, Ruslan. . Oxford University Press. 2003. səh. 754. ISBN 978-0-19-927634-9. 2017-02-28 tarixində . İstifadə tarixi: 2016-07-25.
- Lawson, Mark V. . CRC Press. 17 September 2003. 98–100. ISBN 978-1-58488-255-8. 27 February 2017 tarixində . İstifadə tarixi: 25 July 2016.
- İsmayıl Calallı. "regular expression" // Rasim Əliquliyev (redaktor). İnformatika terminlərinin izahlı lüğəti (az.). Bakı: "İnformasiya texnologiyaları" / "Bakı" nəşriyyatı. 2017. səh. 631. ISBN 978-9952-434-82-8. 6 sentyabr 2023 tarixində (PDF) ().
-
Leung, Hing. (PDF). . 16 sentyabr 2010. 5 dekabr 2013 tarixində (PDF). İstifadə tarixi: 13 avqust 2019.
The concept of regular events was introduced by Kleene via the definition of regular expressions.
- ↑
- . // Beautiful Code. . 2007-08-08. 1–2. ISBN 978-0-596-51004-6. 2020-10-07 tarixində . İstifadə tarixi: 2013-05-15.
- Ritchie, Dennis M. . 1999-02-21 tarixində . İstifadə tarixi: 9 October 2013.
- , 10.11 Bibliographic Notes for Chapter 10, p. 589
- . səh. 98
- citing . . 2003. 2011-06-05 tarixində . İstifadə tarixi: 2009-02-17.
Ədəbiyyat
- Algorithms for finding patterns in strings // (redaktor). Handbook of Theoretical Computer Science, volume A: Algorithms and Complexity. The MIT Press. 1990. 255–300.
- Aho, Alfred V.; (PDF) // . 1992. 2020-10-07 tarixində . İstifadə tarixi: 2013-12-14.
- Aycock, John. (PDF). ACM Computing Surveys. 35 (2). June 2003: 97–113. CiteSeerX . doi:. 2023-12-17 tarixində (PDF). İstifadə tarixi: 2023-12-20.
- Regular Expressions // . The Open Group. 1997. 2020-10-07 tarixində . İstifadə tarixi: 2011-12-13.
- . The Open Group Base Specifications. The Open Group (6). 2004. IEEE Std 1003.1, 2004 Edition. 2011-12-02 tarixində . İstifadə tarixi: 2011-12-13.
- Cox, Russ. . 2007. 2010-01-01 tarixində . İstifadə tarixi: 2008-04-27.
- . Sams Teach Yourself Regular Expressions in 10 Minutes. Sams. 2004. ISBN 978-0-672-32566-3.
- Friedl, Jeffrey E. F. . . 2002. ISBN 978-0-596-00289-3. 2005-08-30 tarixində . İstifadə tarixi: 2005-04-26.
- Gelade, Wouter; Neven, Frank. . Proceedings of the 25th International Symposium on Theoretical Aspects of Computer Science (STACS 2008). 2008. 325–336. arXiv:. 2011-07-18 tarixində . İstifadə tarixi: 2009-06-15.
- Goyvaerts, Jan; Levithan, Steven. . [O'reilly]. 2009. ISBN 978-0-596-52068-7.
- Gruber, Hermann; Holzer, Markus. (PDF). Proceedings of the 35th International Colloquium on Automata, Languages and Programming (ICALP 2008). Lecture Notes in Computer Science. 5126. 2008. 39–50. doi:. ISBN 978-3-540-70582-6. 2011-07-11 tarixində (PDF). İstifadə tarixi: 2011-02-03.
- Habibi, Mehran. Real World Regular Expressions with Java 1.4. Springer. 2004. ISBN 978-1-59059-107-9.
- Hopcroft, John E.; Motwani, Rajeev; Ullman, Jeffrey D. Introduction to Automata Theory, Languages, and Computation (2nd). Addison-Wesley. 2000.
- Johnson, Walter L.; Porter, James H.; Ackley, Stephanie I.; Ross, Douglas T. "Automatic generation of efficient lexical processors using finite state techniques". Communications of the ACM. 11 (12). 1968: 805–813. doi:.
- Kleene, Stephen C. Representation of Events in Nerve Nets and Finite Automata // Shannon, Claude E.; McCarthy, John (redaktorlar ). (PDF). Princeton University Press. 1951. 3–42. 2020-10-07 tarixində (PDF). İstifadə tarixi: 2017-12-10.
- Kozen, Dexter. A completeness theorem for Kleene algebras and the algebra of regular events // [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science. 1991. 214–225. doi:. :. ISBN 978-0-8186-2230-4.
- Laurikari, Ville. . 2009. 2010-07-14 tarixində . İstifadə tarixi: 2009-04-01.
- Liger, François; McQueen, Craig; Wilton, Paul. Visual Basic .NET Text Manipulation Handbook. . 2002. ISBN 978-1-86100-730-8.
- . // Introduction to the Theory of Computation. PWS Publishing. 1998. . ISBN 978-0-534-94728-6.
- Stubblebine, Tony. Regular Expression Pocket Reference. O'Reilly. 2003. ISBN 978-0-596-00415-6.
- . "Programming Techniques: Regular expression search algorithm". Communications of the ACM. 11 (6). 1968: 419–422. doi:.
- . . 2002. 2010-01-12 tarixində . İstifadə tarixi: 2006-10-11.
Xarici keçidlər
- DMOZ-da
- ISO/IEC 9945-2:1993
- ISO/IEC 9945-2:2002
- ISO/IEC 9945-2:2003
- ISO/IEC/IEEE 9945:2009