Abstract
Regular expressions are widely used within and even outside of computer science due to their expressiveness and flexibility. However, regular expressions have a quite compact and rather tolerant syntax that makes them hard to understand, hard to compose, and error-prone. Faulty regular expressions may cause failures of the applications that use them. Therefore, ensuring the correctness of regular expressions is a vital prerequisite for their use in practical applications. The importance and necessity of ensuring correct definitions of regular expressions have attracted extensive attention from researchers and practitioners, especially in recent years. In this study, we provide a review of the recent works for ensuring the correct usage of regular expressions. We classify those works into different categories, including the empirical study, test string generation, automatic synthesis and learning, static checking and verification, visual representation and explanation, and repairing. For each category, we review the main results, compare different approaches, and discuss their advantages and disadvantages. We also discuss some potential future research directions.
Article PDF
Similar content being viewed by others
Explore related subjects
Find the latest articles, discoveries, and news in related topics.Avoid common mistakes on your manuscript.
References
A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman. Compilers: Principles, Techniques, & Tools, 2nd ed., Harlow, UK: Pearson Addison Wesley, 2007.
G. Wondracek, P. M. Comparetti, C. Krügel, E. Kirda. Automatic network protocol analysis. In Proceedings of the Network and Distributed System Security Symposium, San Diego, USA, pp. 1–14, 2008.
A. S. Yeole, B. B. Meshram. Analysis of different technique for detection of SQL injection. In Proceedings of International Conference & Workshop on Emerging Trends in Technology, ACM, Mumbai, India, pp. 963–966, 2011. DOI: https://doi.org/10.1145/1980022.1980229.
Vern Paxson. The Bro network security monitor, [Online], Available: http://www.bro.org, 2015.
M. Murata, D. Lee, M. Mani, K. Kawaguchi. Taxonomy of XML schema languages using formal language theory. ACM Transactions on Internet Technology, vol. 5, no. 4, pp. 660–704, 2005. DOI: https://doi.org/10.1145/1111627.1111631.
F. Alkhateeb, J. F. Baget, J. Euzenat. Extending SPARQL with regular expression patterns (for querying RDF). Journal of Web Semantics, vol. 7, no. 2, pp. 57–73, 2009. DOI: https://doi.org/10.1016/j.websem.2009.02.002.
A. N. Arslan. Multiple sequence alignment containing a sequence of regular expressions. In Proceedings of IEEE Symposium on Computational Intelligence in Bioinformatics and Computational Biology, IEEE, La Jolla, USA, 2005. DOI: https://doi.org/10.1109/CIBCB.2005.1594922.
C. Chapman, K. T. Stolee. Exploring regular expression usage and context in Python. In Proceedings of the 25th International Symposium on Software Testing and Analysis, ACM, Saarbrücken, Germany, pp. 282–293, 2016. DOI: https://doi.org/10.1145/2931037.2931073.
J. C. Davis, C. A. Coghlan, F. Servant, D. Lee. The impact of regular expression denial of service (ReDoS) in practice: An empirical study at the ecosystem scale. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Lake Buena Vista, USA, pp. 246–256, 2018. DOI: https://doi.org/10.1145/3236024.3236027.
E. Spishak, W. Dietl, M. D. Ernst. A type system for regular expressions. In Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs, ACM, Beijing, China, pp. 20–26, 2012. DOI: https://doi.org/10.1145/2318202.2318207.
E. Larson, A. Kirk. Generating evil test strings for regular expressions. In Proceedings of IEEE International Conference on Software Testing, Verification and Validation, IEEE, Chicago, USA, pp. 309–319, 2016. DOI: https://doi.org/10.1109/ICST.2016.29.
M. Erwig, R. Gopinath. Explanations for regular expressions. In Proceedings of the 15th International Conference on Fundamental Approaches to Software Engineering, Springer, Tallinn, Estonia, pp. 394–408, 2012. DOI: https://doi.org/10.1007/978-3-642-28872-2_27.
P. Klint, R. Lämmel, C. Verhoef. Toward an engineering discipline for grammarware. ACM Transactions on Software Engineering and Methodology, vol. 14, no. 3, pp. 331–380, 2005. DOI: https://doi.org/10.1145/1072997.1073000.
P. P. Wang, K. T. Stolee. How well are regular expressions tested in the wild? In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ACM, Lake Buena Vista, USA, pp.668–678, 2018. DOI: https://doi.org/10.1145/3236024.3236072.
J. E. Hopcroft, R. Motwani, J. D. Ullman. Introduction to Automata Theory, Languages, and Computation, 2nd ed., Boston, USA: Addison-Wesley, 2001.
W. Gelade. Succinctness of regular expressions with interleaving, intersection and counting. Theoretical Computer Science, vol. 411, no. 31–33, pp. 2987–2998, 2010. DOI: https://doi.org/10.1016/j.tcs.2010.04.036.
H. S. Thompson, D. Beech, M. Maloney, N. Mendelsohn. XML schema part 1: Structures Second edition, [Online], Available: https://www.w3.org/TR/xmlschema-1/, October 28, 2004
J. Clark, M. Makoto. Relax NG tutorial, [Online], Available: https://relaxng.org/tutorial-20011203.html, August 10, 2001.
P. Hazel. PCRE-Perl compatible regular expressions, [Online], Available: http://pcre.org/, 2005.
The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018.
P. Ammann, J. Offutt. Introduction to Software Testing Cambridge USA: Cambridge University Press, 2016.
P. P. Wang, C. Brown, J. A Jennings, K. T. Stolee. An empirical study on regular expression bugs. In Proceedings of the 17th International Conference on Mining Software Repositories, ACM, Seoul, Korea, pp. 103–113, 2020. DOI: https://doi.org/10.1145/3379597.3387464.
C. Chapman, P. P. Wang, K. T. Stolee. Exploring regular expression comprehension. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, IEEE, Urbana, USA, pp. 405–416, 2017. DOI: https://doi.org/10.1109/ASE.2017.8115653.
P. P. Wang, G. R. Bai, K. T. Stolee. Exploring regular expression evolution. In Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering, IEEE, Hangzhou, China, pp. 502–513, 2019. DOI: https://doi.org/10.1109/SANER.2019.8667972.
G. R. Bai, B. Clee, N. Shrestha, C. Chapman, C. Wright, K. T. Stolee. Exploring tools and strategies used during regular expression composition tasks. In Proceedings of the 27th IEEE/ACM International Conference on Program Comprehension, IEEE, Montreal, Canada, pp. 197–208, 2019. DOI: https://doi.org/10.1109/ICPC.2019.00039.
Regular Expression Library. [Online], Available: https://www.regexlib.com.
R. Hodovǎn, Z. Herczeg, Ǎ, Kiss. Regular expressions on the web. In Proceedings of the 12th IEEE International Symposium on Web Systems Evolution, IEEE, Timisoara, Romania, pp. 29–32, 2010. DOI: https://doi.org/10.1109/WSE.2010.5623572.
J. C. Davis, L. G. Michael IV, C. A. Coghlan, F. Servant, D. Lee. Why aren’t regular expressions a lingua franca? An empirical study on the re-use and portability of regular expressions. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ACM, Tallinn, Estonia, pp. 443–454, 2019. DOI: https://doi.org/10.1145/3338906.3338909.
J. Kirrage, A. Rathnayake, H. Thielecke. Static analysis for regular expression denial-of-service attacks. In Proceedings of the 7th International Conference on Network and System Security, Springer, Madrid, Spain, pp. 135–148, 2013. DOI: https://doi.org/10.1007/978-3-642-38631-2_11.
L. G. Michael, J. Donohue, J. C. Davis, D. Lee, F. Servant. Regexes are hard: Decision-making, difficulties, and risks in programming regular expressions. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering, IEEE, San Diego, USA, pp. 415–426, 2019. DOI: https://doi.org/10.1109/ASE.2019.00047.
A. Brüggemann-Klein, D. Wood. One-unambiguous regular languages. Information and Computation, vol. 140, no. 2, pp. 229–253, 1998. DOI: https://doi.org/10.1006/inco.1997.2688.
Y. T. Li, X. Y. Chu, X. Y. Mou, C. M. Dong, H. M. Chen. Practical study of deterministic regular expressions from large-scale XML and schema data. In Proceedings of the 22nd International Database Engineering & Applications Symposium, ACM, Villa San Giovanni, Italy, pp. 45–53, 2018. DOI: https://doi.org/10.1145/3216122.3216126.
L. X. Zheng, S. Ma, Y. Y. Wang, G. Lin. String generation for testing regular expressions. The Computer Journal, vol. 63, no. 1, pp. 41–65, 2020. DOI: https://doi.org/10.1093/comjnl/bxy137.
J. C. Davis, D. Moyer, A. M. Kazerouni, D. Lee. Testing regex generalizability and its implications: A large-scale many-language measurement study. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering, IEEE, San Diego, USA, pp. 427–439, 2019. DOI: https://doi.org/10.1109/ASE.2019.00048.
C. Nie, H. Leung. A survey of combinatorial testing. ACM Computing Surveys, vol. 43, no. 2, Article number 11, 2011. DOI: https://doi.org/10.1145/1883612.1883618.
R. A. DeMillo, R. J. Lipton, F. G. Sayward. Hints on test data selection: Help for the practicing programmer. Computer, vol. 11, no. 4, pp. 34–41, 1978. DOI: https://doi.org/10.1109/CM.1978.218136.
P. Arcaini, A. Gargantini, E. Riccobene. MutRex: A mutation-based generator of fault detecting strings for regular expressions. In Proceedings of IEEE International Conference on Software Testing, Verification and Validation Workshops, IEEE, Tokyo, Japan, pp. 87–96, 2017. DOI: https://doi.org/10.1109/ICSTW.2017.23.
M. C. F. P. Emer, I. F. Nazar, S. R. Vergilio, M. Jino. Fault-based test of XML schemas. Computing and Informatics, vol. 30, no. 3, pp. 531–557, 2011.
J. B. Li, J. Miller. Testing the semantics of W3C XML schema. In Proceedings of the 29th Annual International Computer Software and Applications Conference, IEEE, Edinburgh, UK, pp. 443–448, 2005. DOI: https://doi.org/10.1109/COMPSAC.2005.151.
S. Kannan, Z. Sweedyk, S. R. Mahaney. Counting and random generation of strings in regular languages. In Proceedings of the 6th Annual ACM-SIAM Symposium on Discrete Algorithms, ACM, San Francisco, USA, pp. 551–557, 1995.
O. Bernardi, O. Gimènez. A linear algorithm for the random sampling from regular languages. Algorithmica, vol. 62, no. 1–2, pp. 130–145, 2012. DOI: https://doi.org/10.1007/s00453-010-9446-5.
M. Ackerman, J. Shallit. Efficient enumeration of regular languages. In Proceedings of the 12th International Conference on Implementation and Application of Automata, Praque, Czech Republic, Springer, pp. 226–242, 2007. DOI: https://doi.org/10.1007/978-3-540-76336-9_22.
M. Ackerman, J. Shallit. Efficient enumeration of words in regular languages. Theoretical Computer Science, vol. 410, no. 37, pp. 3461–3470, 2009. DOI: https://doi.org/10.1016/j.tcs.2009.03.018.
G. Radanne, P. Thiemann. Regenerate: A language generator for extended regular expressions. In Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, ACM, Boston, USA, pp. 202–214, 2018. DOI: https://doi.org/10.1145/3278122.3278133.
Xeger. [Online], Availabe: https://code.google.com/archive/p/xeger/.
Exrex. [Online], Available: https://github.com/asciimoo/exrex.
Generex. [Online], Available: https://github.com/mifmif/generex.
Regldg. [Online], Available: https://regldg.com/.
P. Arcaini, A. Gargantini, E. Riccobene. Fault-based test generation for regular expressions by mutation. Software: Testing, Verification and Reliability, vol. 29, no. 1–2, Article number e1664, 2019. DOI: https://doi.org/10.1002/stvr.1664.
E. M. Gold. Complexity of automaton identification from given data. Information and Control, vol. 37, no. 3, pp. 302–320, 1978. DOI: https://doi.org/10.1016/S0019-9958(78)90562-4.
J. Oncina, P. Garcǐa. Identifying regular languages in polynomial time. Advances in Structural and Syntactic Pattern Recognition, H. Bunke, Ed., World Scientific, pp. 99–108, 1993. DOI: https://doi.org/10.1142/9789812797919_0007.
F. Brauer, R. Rieger, A. Mocan, W. M. Barczynski. Enabling information extraction by inference of regular expressions from sample entities. In Proceedings of the 20th ACM International Conference on Information and Knowledge Management, ACM, Glasgow, UK, pp. 1285–1294, 2011. DOI: https://doi.org/10.1145/2063576.2063763.
A. Bartoli, G. Davanzo, A. De Lorenzo, E. Medvet, E. Sorio. Automatic synthesis of regular expressions from examples. Computer, vol. 47, no. 12, pp. 72–80, 2014. DOI: https://doi.org/10.1109/MC.2014.344.
A. Bartoli, A. De Lorenzo, E. Medvet, F. Tarlao. Can a machine replace humans in building regular expressions? A case study IEEE Intelligent Systems, vol. 31, no. 6, pp. 15–21, 2016. DOI: https://doi.org/10.1109/MIS.2016.46.
A. Bartoli, A. De Lorenzo, E. Medvet, F. Tarlao. Active learning of regular expressions for entity extraction. IEEE Transactions on Cybernetics, vol. 48, no. 3, pp. 1067–1080, 2017. DOI: https://doi.org/10.1109/TCYB.2017.2680466.
A. Bartoli, A. De Lorenzo, E. Medvet, F. Tarlao. Inference of regular expressions for text extraction from examples. IEEE Transactions on Knowledge and Data Engineering, vol. 28, no. 5, pp. 1217–1230, 2016. DOI: https://doi.org/10.1109/TKDE.2016.2515587.
M. Lee, S. So, H. Oh. Synthesizing regular expressions from examples for introductory automata assignments. In Proceedings of ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, ACM, Amsterdam, The Netherlands, pp. 70–80, 2016. DOI: https://doi.org/10.1145/2993236.2993244.
E. M. Gold, The RAND Corporation. Language identification in the limit. Information and Control, vol. 10, no. 5, pp. 447–474, 1967. DOI: https://doi.org/10.1016/S0019-9958(67)91165-5.
G. J. Bex, F. Neven, T. Schwentick, S. Vansummeren. Inference of concise regular expressions and DTDs. ACM Transactions on Database Systems, vol. 35, no. 2, Article number 11, 2010. DOI: https://doi.org/10.1145/1735886.1735890.
D. D. Freydenberger, T. Kötzing. Fast learning of restricted regular expressions and DTDs. Theory of Computing Systems, vol. 57, no. 4, pp. 1114–1158, 2015. DOI: https://doi.org/10.1007/s00224-014-9559-3.
H. Fernau. Algorithms for learning regular expressions from positive data. Information and Computation, vol. 207, no. 4, pp. 521–541, 2009. DOI: https://doi.org/10.1016/j.ic.2008.12.008.
N. Kushman, R. Barzilay. Using semantic unification to generate regular expressions from natural language. In Proceedings of Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Atlanta, USA, pp. 826–836, 2013.
N. Locascio, K. Narasimhan, E. DeLeon, N. Kushman, R. Barzilay. Neural generation of regular expressions from natural language with minimal domain knowledge. In Proceedings of Conference on Empirical Methods in Natural Language Processing, Austin, Texas, USA, pp. 1918–1923, 2016. DOI: https://doi.org/10.18653/v1/D16-1197.
Z. X. Zhong, J. Q. Guo, W. Yang, J. Peng, T. Xie, J. G. Lou, T. Liu, D. M. Zhang. SemRegex: A semantics-based approach for generating regular expressions from natural language specifications. In Proceedings of Conference on Empirical Methods in Natural Language Processing, Association for Computational Linguistics, Brussels, Belgium, pp. 1608–1618, 2018. DOI: https://doi.org/10.18653/v1/D18-1189.
Z. X. Zhong, J. Q. Guo, W. Yang, T. Xie, J. G. Lou, T. Liu, D. M. Zhang. Generating regular expressions from natural language specifications: Are we there yet? In Proceedings of the 32nd AAAI Conference on Artificial Intelligence, New Orleans, USA, pp. 791–794, 2018.
Q. C. Chen, X. Y. Wang, X. Ye, G. Durrett, I. Dillig. Multi-modal synthesis of regular expressions. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM, London, UK, pp. 487–502, 2020. DOI: https://doi.org/10.1145/33854122.3385988.
H. Hosoya, B. C. Pierce. XDuce: A statically typed XML processing language. ACM Transactions on Internet Technology, vol. 3, no. 2, pp. 117–148, 2003. DOI: https://doi.org/10.1145/767193.767195.
G. Castagna, D. Colazzo, A. Frisch. Error mining for regular expression patterns. In Proceedings of the 9th Italian Conference on Theoretical Computer Science, Springer, Siena, Italy, pp. 160–172, 2005. DOI: https://doi.org/10.1007/11560586_13.
V. Benzaken, G. Castagna, A. Frisch. CDuce: An XML-centric general-purpose language. ACM SIGPLAN Notices, vol. 38, no. 9, pp. 51–63, 2003. DOI: https://doi.org/10.1145/944746.944711.
E. Larson. Automatic checking of regular expressions. In Proceedings of the 18th IEEE International Working Conference on Source Code Analysis and Manipulation, IEEE, Madrid, Spain, pp. 225–234, 2018. DOI: https://doi.org/10.1109/SCAM.2018.00034.
X. Liu, Y. F. Jiang, D. H. Wu. A lightweight framework for regular expression verification. In Proceedings of the 19th IEEE International Symposium on High Assurance Systems Engineering, IEEE, Hangzhou, China, pp. 11–8, 2019. DOI: https://doi.org/10.1109/HASE.2019.00011.
RegExr. [Online], Available: https://regexr.com/.
Regular Expressions 101. [Online], Available: https://regex101.com/.
RegexBuddy. [Online], Available: http://www.regexbuddy.com/.
I. Budiselic, S. Srbljic, M. Popovic. RegExpert: A tool for visualization of regular expressions. In Proceedings of International Conference on “Computer as a Tool”, IEEE, Warsaw, Poland, pp. 2387–2389, 2007. DOI: https://doi.org/10.1109/EURCON.2007.4400374.
RegExper. [Online], Available: https://regexper.com/.
Regular Expression Exploration.[Online], Available: https://rise4fun.com/rex/.
B. Braune, S. Diehl, A. Kerren, R. Wilhelm. Animation of the generation and computation of finite automata for learning software. In Proceedings of the 4th International Workshop on Implementing Automata, Springer, Potsdam, Germany, pp. 39–47, 2001. DOI: https://doi.org/10.1007/3-540-45526-4_4.
T. Hung, S. H. Rodger. Rodger. Increasing visualization and interaction in the automata theory course. ACM SIGCSE Bulletin, vol. 32, no. 1, pp. 6–10, 2000. DOI: https://doi.org/10.1145/331795.331800.
A. F. Blackwell. See what you need: Helping end-users to build abstractions. Journal of Visual Languages & Computing, vol. 12, no. 5, pp. 475–499, 2001. DOI: https://doi.org/10.1006/jvlc.2001.0216.
K. Oflazer, Yılmaz. Vi-xfst: A visual regular expression development environment for Xerox finite state tool. In Proceedings of the Workshop on ACL Special Interest Group in Computational Phonology, ACM, Barcelona, Spain, pp. 86–93, 2004.
F. Beck, S. Gulan, B. Biegel, S. Baltes, D. Weiskopf. Regviz: Visual debugging of regular expressions. In Proceedings of the 36th International Conference on Software Engineering, ACM, Hyderabad, India, pp. 504–507, 2014. DOI: https://doi.org/10.1145/2591062.2591111.
Y. Y. Li, R. Krishnamurthy, S. Raghavan, S. Vaithyanathan, H. V. Jagadish. Regular expression learning for information extraction. In Proceedings of Conference on Empirical Methods in Natural Language Processing, Association for Computational Linguistics, Honolulu, USA, pp. 21–30, 2008.
T. Rebele, K. Tzompanaki, F. M. Suchanek. Adding missing words to regular expressions. In Proceedings of the 22nd Pacific-Asia Conference on Knowledge Discovery and Data Mining, Springer, Melbourne, Australia, pp. 67–79, 2018. DOI: https://doi.org/10.1007/978-3-319-93037-4_6.
R. Pan, Q. H. P. Hu, G. W. Xu, L. D’Antoni. Automatic repair of regular expressions. In Proceedings of the ACM on Programming Languages, vol. 3, Article number 139, 2019. DOI: https://doi.org/10.1145/3360565.
Y. T. Li, Z. W. Xu, J. L. Cao, H. M. Chen, T. J. Ge, S. C. Cheung, H. R. Zhao. FlashRegex: Deducing Anti-ReDoS regexes from examples. In Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, IEEE, Melbourne, Australia, pp. 659–671, 2020. DOI: https://doi.org/10.1145/3324884.3416556.
N. Chida, T. Terauchi. Automatic repair of vulnerable regular expressions. [Online], Available: https://arxiv.org/abs/2010.12450, 2020.
P. Arcaini, A. Gargantini, E. Riccobene. Regular expression learning with evolutionary testing and repair. In Proceedings of the 31st IFIP International Conference on Testing Software and Systems, Springer, Paris, France, pp. 22–40, 2019. DOI: https://doi.org/10.1007/978-3-030-31280-0_2.
R. A. Cochran, L. D’Antoni, B. Livshits, D. Molnar, M. Veanes. Program boosting: Program synthesis via crowd-sourcing. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, Mumbai, India, pp. 677–688, 2015. DOI: https://doi.org/10.1145/2676726.2676973.
P. Arcaini, A. Gargantini, E. Riccobene. Interactive testing and repairing of regular expressions. In Proceedings of the 30th IFIP International Conference on Testing Software and Systems, Springer, Cádiz, Spain, pp. 1–16, 2018. DOI: https://doi.org/10.1007/978-3-319-99927-2_1.
X. H. Qiu, Y. T. Hu, B. Li. Sequential Fault diagnosis using an inertial velocity differential evolution algorithm. International Journal of Automation and Computing, vol. 16, no. 3, pp. 389–397, 2019. DOI: https://doi.org/10.1007/s11633-016-1008-0.
Acknowledgements
This work was supported by National Natural Science Foundation of China (Nos. 61872339, 61502184 and 61925203).
Author information
Authors and Affiliations
Corresponding author
Additional information
Recommended by Associate Editor Hong-Ji Yang
Colored figures are available in the online version at https://link.springer.com/journal/11633
Li-Xiao Zheng received the B. Sc. degree in computer science and technology from Jilin University, China in 2006, and the Ph. D. degree in computer science and technology from Institute of Software, Chinese Academy of Sciences, China in 2012. Currently, she is an associate professor at College of Computer Science and Technology, Huaqiao University, China.
Her research interests include formal language theory and software testing.
Shuai Ma received the Ph. D. degrees in computer science from University of Edinburgh, UK in 2010 and Peking University, China in 2004, respectively. Currently, he is a professor at School of Computer Science and Engineering, Beihang University, China. He is a recipient of the best paper award for VLDB 2010 and best paper candidate for ICDM 2019. He is an associate editor of VLDB Journal since 2017, IEEE Transactions on Big Data Since 2020 and Knowledge and Information Systems since 2020.
His research interests include database theory and systems, and big data.
Zu-Xi Chen received the Ph. D. degree in computer science from Tongji University, China in 2016. Currently, he is a lecturer at College of Computer Science and Technology, Huaqiao University, China.
His research interests include formal methods and software safety.
Xiang-Yu Luo received the Ph. D. degree in computer science from Sun Yat-sen University, China in 2006. He is currently an associate professor at College of Computer Science and Technology, Huaqiao University, China. He has been involved in the national project of model checking for multi-agent systems.
His research interests include model checking, multi-agent systems, temporal logics, and epistemic logics.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made.
The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Zheng, LX., Ma, S., Chen, ZX. et al. Ensuring the Correctness of Regular Expressions: A Review. Int. J. Autom. Comput. 18, 521–535 (2021). https://doi.org/10.1007/s11633-021-1301-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11633-021-1301-4