{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,6]],"date-time":"2026-10-06T15:14:57Z","timestamp":1791299697344,"version":"4.1.0"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T00:00:00Z","timestamp":1570665600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CNS-1763871, CCF-1750965, CCF-1744614, CCF-1704117"],"award-info":[{"award-number":["CNS-1763871, CCF-1750965, CCF-1744614, CCF-1704117"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,10,10]]},"abstract":"<jats:p>We introduce RFixer, a tool for repairing complex regular expressions using examples and only consider regular expressions without non-regular operators (e.g., negative lookahead). Given an incorrect regular expression and sets of positive and negative examples, RFixer synthesizes the closest regular expression to the original one that is consistent with the examples. Automatically repairing regular expressions requires exploring a large search space because practical regular expressions: i) are large, ii) operate over very large alphabets---e.g., UTF-16 and ASCII---and iii) employ complex constructs---e.g., character classes and numerical quantifiers. RFixer's repair algorithm achieves scalability by taking advantage of structural properties of regular expressions to effectively prune the search space, and it employs satisfiability modulo theory solvers to efficiently and symbolically explore the sets of possible character classes and numerical quantifiers. RFixer could successfully compute minimal repairs for regular expressions collected from a variety of sources, whereas existing tools either failed to produce any repair or produced overly complex repairs.<\/jats:p>","DOI":"10.1145\/3360565","type":"journal-article","created":{"date-parts":[[2019,10,11]],"date-time":"2019-10-11T14:53:33Z","timestamp":1570805613000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":26,"title":["Automatic repair of regular expressions"],"prefix":"10.1145","volume":"3","author":[{"given":"Rong","family":"Pan","sequence":"first","affiliation":[{"name":"University of Texas at Austin, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Qinheping","family":"Hu","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gaowei","family":"Xu","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Loris","family":"D'Antoni","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,10,10]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2018. COMPSCI 194 - LEC 016 https:\/\/bcourses.berkeley.edu\/courses\/1267848\/pages\/regex. https:\/\/bcourses.berkeley.edu\/ courses\/1267848\/pages\/regex  2018. COMPSCI 194 - LEC 016 https:\/\/bcourses.berkeley.edu\/courses\/1267848\/pages\/regex. https:\/\/bcourses.berkeley.edu\/ courses\/1267848\/pages\/regex"},{"key":"e_1_2_1_2_1","volume-title":"Incremental Grammatical Inference From Positive And Negative Data Using Unbiased Finite State Automata. In In Proceedings of the ACL\u201902 Workshop on Unsupervised Lexical Acquisition. 291\u2013300","author":"Alquezar R."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2014.344"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TKDE.2016.2515587"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2004.12.030"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676973"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723163"},{"key":"e_1_2_1_8_1","volume-title":"Automata Tutor and what we learned from building an online teaching tool. Bulletin of the EATCS 117","author":"D\u2019Antoni Loris","year":"2015"},{"key":"e_1_2_1_9_1","volume-title":"Grammatical Interference: Learning Syntax from Sentences, Laurent Miclet and Colin de la Higuera (Eds.)","author":"Dupont Pierre"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/11564089_24"},{"key":"e_1_2_1_11_1","volume-title":"Abstraction, Reformulation and Approximation , Jean-Daniel Zucker and Lorenza Saitta (Eds.)","author":"Galassi Ugo"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0019-9958(78)90562-4"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926423"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2240236.2240260"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1561\/2500000010"},{"key":"e_1_2_1_16_1","unstructured":"A.J.G. Hey S. Tansley and K.M. Tolle. 2009. The Fourth Paradigm: Data-intensive Scientific Discovery. Microsoft Research. https:\/\/books.google.com\/books?id=oGs_AQAAIAAJ  A.J.G. Hey S. Tansley and K.M. Tolle. 2009. The Fourth Paradigm: Data-intensive Scientific Discovery. Microsoft Research. https:\/\/books.google.com\/books?id=oGs_AQAAIAAJ"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the Eighth Symposium on Programming Languages and Software Tools, SPLST\u201903","author":"Kilpel\u00e4inen Pekka","year":"2003"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2993236.2993244"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP \u201908)","author":"Li Yunyao"},{"key":"e_1_2_1_20_1","volume-title":"Suchanek","author":"Rebele Thomas","year":"2018"},{"key":"e_1_2_1_21_1","unstructured":"RegExLib. 2017. Regular Expression Library. http:\/\/regexlib.com\/ .  RegExLib. 2017. Regular Expression Library. http:\/\/regexlib.com\/ ."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837668"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/363347.363387"},{"key":"e_1_2_1_24_1","unstructured":"Automata Tutor. 2015. Data from the tool Automata Tutor. https:\/\/github.com\/AutomataTutor\/automatatutor-data .  Automata Tutor. 2015. Data from the tool Automata Tutor. https:\/\/github.com\/AutomataTutor\/automatatutor-data ."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462174"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/103418.103468"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360565","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360565","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360565","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:22:59Z","timestamp":1750202579000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360565"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,10]]},"references-count":26,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2019,10,10]]}},"alternative-id":["10.1145\/3360565"],"URL":"https:\/\/doi.org\/10.1145\/3360565","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,10,10]]},"assertion":[{"value":"2019-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}