IP Library › Granted Patent US 12,524,446
Granted Patent B2
US 12,524,446 · App. 16/438,316 · Granted Jan 13, 2026

Regular expression generation using longest common subsequence algorithm on regular expression codes

Inventors: Michael Malak (Denver, CO); Luis E. Rivas (Denver, CO); Mark L. Kreider (Arvada, CO)
Assignee: Oracle International Corporation
G06F16/3329G06F3/0482G06F3/14G06F9/451G06F16/24522G06F16/258G06F16/3322G06F16/334G06F16/35G06F16/90344G06F18/2323G06F40/10G06F40/126G06F40/146G06F40/177G06V30/1983
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,524,446
App. No.
16/438,316
Granted
Jan 13, 2026
Kind
B2
Abstract

Disclosed herein are techniques related to automated generation of regular expressions. In some embodiments, a regular expression generator may receive input data comprising one or more character sequences. The regular expression generator may convert character sequences into a sets of regular expression codes and/or span data structures. The regular expression generator may identify a longest common subsequence shared by the sets of regular expression codes and/or spans, and may generate a regular expression based upon the longest common subsequence.

Claims (100)

1 . A method of generating regular expressions using a longest common subsequence (LCS) algorithm, the comprising:

receiving, by a regular expression generator comprising one or more processors, first input data comprising a first character sequence;

converting, by the regular expression generator, the first character sequence into a first set of regular expression codes, wherein the first set of regular expression codes include one or more character categories associated with characters in the first character sequence;

receiving, by the regular expression generator, second input data comprising a second character sequence;

converting, by the regular expression generator, the second character sequence into a second set of regular expression codes, wherein the second set of regular expression codes include one or more character categories associated with characters in the second character sequence, and

wherein the first set of regular expression codes and the second set of regular expression codes are intermediate regular expression codes generated prior to a first regular expression and configured to map an output of executing the LCS algorithm on the first set of regular expression codes and the second set of regular expression codes to the first regular expression;

executing, by the regular expression generator, the longest common subsequence algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence;

capturing the output of executing the LCS algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence; and

generating, by the regular expression generator, the first regular expression based on the output of the LCS algorithm, wherein the first regular expression comprises a sequence of characters defining a pattern in the output of the first set of regular expression codes and the second set of regular expression codes.

2 . The method of claim 1 , further comprising:

receiving, by the regular expression generator, third input data comprising a third character sequence;

converting, by the regular expression generator, the third character sequence into a third set of regular expression codes;

executing, by the regular expression generator, the longest common subsequence (LCS) algorithm, wherein said executing comprises providing the first set of regular expression codes, the second set of regular expression codes, and the third set of regular expression codes as inputs to the execution of the LCS algorithm and capturing a second output of the LCS algorithm; and

generating, by the regular expression generator, a second regular expression based on the second output of the LCS algorithm.

3 . The method of claim 1 , further comprising, prior to executing the LCS algorithm:

converting, by the regular expression generator, the first set of regular expression codes into a first set of one or more span data structures, each span data structure comprising a single regular expression code and a repetition count range; and

converting, by the regular expression generator, the second set of regular expression codes into a second set of one or more span data structures,

wherein the first set of regular expression codes and the second set of regular expression codes are provided as inputs to the execution of the LCS algorithm via the first and second sets of span data structures.

4 . The method of claim 3 , further comprising:

identifying, by the regular expression generator, a first text fragment comprising one or more characters, wherein the first text fragment is found within the first character sequence and the second character sequence;

storing, by the regular expression generator, the first text fragment; and

after generating the first regular expression, executing a simplification process on the first regular expression, wherein the simplification process comprises replacing a corresponding portion of the first regular expression with the first text fragment.

5 . The method of claim 4 , wherein executing the simplification process on the first regular expression comprises:

determining a first span data structure associated the first text fragment;

determining a number of times within the first and second sets of span data structures, that the first span data structure corresponds to the first text fragment; and

replacing the first span data structure within the first regular expression, with the first text fragment, in response to determining that the number of times that the first span data structure corresponds to the first text fragment within the first and second sets of span data structures, is greater than a predetermined threshold.

6 . The method of claim 1 , wherein executing the LCS algorithm comprises:

identifying, within the first and second sets of regular expression codes, a first set of substrings and a second set of substrings, wherein the first set of substrings and the second set of substrings have the same longest common subsequence;

determining a first possible output of the LCS algorithm resulting from a selection of the first set of substrings as the longest common subsequence within the first and second sets of regular expression codes;

determining a second possible output of the LCS algorithm resulting from a selection of the second set of substrings as the longest common subsequence within the first and second sets of regular expression codes;

comparing a length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm; and

during the execution of the LCS algorithm, selecting either the first set of substrings as the longest common subsequence, or the second set of substrings as the longest common subsequence, based on the comparison of the length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm.

7 . The method of claim 6 , wherein the selection of either the first set of substrings as the longest common subsequence, or the second set of substrings as the longest common subsequence, corresponds to a shortest possible length of the output of the LCS algorithm.

8 . A system for generating regular expressions using a longest common subsequence (LCS) algorithm, the system comprising:

a processing unit comprising one or more processors; and

memory storing instructions that, when executed by the processing unit, cause the system to:

receive first input data comprising a first character sequence;

convert the first character sequence into a first set of regular expression codes, wherein the first set of regular expression codes include one or more character categories associated with characters in the first character sequence;

receive second input data comprising a second character sequence;

convert the second character sequence into a second set of regular expression codes, wherein the second set of regular expression codes include one or more character categories associated with characters in the second character sequence, and

wherein the first set of regular expression codes and the second set of regular expression codes are intermediate regular expression codes generated prior to a first regular expression and configured to map an output of executing the LCS algorithm on the first set of regular expression codes and the second set of regular expression codes to the first regular expression;

execute the longest common subsequence algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence;

capturing the output of executing the LCS algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence; and

generate the first regular expression based on the output of the LCS algorithm, wherein the first regular expression comprises a sequence of characters defining a pattern in the output of the first set of regular expression codes and the second set of regular expression codes.

9 . The system of claim 8 , the memory storing further instructions that, when executed by the processing unit, cause the system to:

receive third input data comprising a third character sequence;

convert the third character sequence into a third set of regular expression codes;

execute the longest common subsequence (LCS) algorithm, wherein said executing comprises providing the first set of regular expression codes, the second set of regular expression codes, and the third set of regular expression codes as inputs to the execution of the LCS algorithm and capturing a second output of the LCS algorithm; and

generate a second regular expression based on the second output of the LCS algorithm.

10 . The system of claim 8 , the memory storing further instructions that, when executed by the processing unit, cause the system to, prior to executing the LCS algorithm:

convert the first set of regular expression codes into a first set of one or more span data structures, each span data structure comprising a single regular expression code and a repetition count range; and

convert the second set of regular expression codes into a second set of one or more span data structures,

wherein the first set of regular expression codes and second set of regular expression codes are provided as inputs to the execution of the LCS algorithm via the first and second sets of span data structures.

11 . The system of claim 10 , the memory storing further instructions that, when executed by the processing unit, cause the system to:

identify a first text fragment comprising one or more characters, wherein the first text fragment is found within the first character sequence and the second character sequence;

store the first text fragment; and

after generating the first regular expression, execute a simplification process on the first regular expression, wherein the simplification process comprises replacing a corresponding portion of the first regular expression with the first text fragment.

12 . The system of claim 11 , wherein executing the simplification process on the first regular expression comprises:

determining a first span data structure associated the first text fragment;

determining a number of times within the first and second sets of span data structures, that the first span data structure corresponds to the first text fragment; and

replacing the first span data structure within the first regular expression, with the first text fragment, in response to determining that the number of times that the first span data structure corresponds to the first text fragment within the first and second sets of span data structures, is greater than a predetermined threshold.

13 . The system of claim 8 , wherein executing the LCS algorithm comprises:

identifying, within the first and second sets of regular expression codes, a first set of substrings and a second set of substrings, wherein the first set of substrings and the second set of substrings have the same longest common subsequence;

determining a first possible output of the LCS algorithm resulting from a selection of the first set of substrings as the longest common subsequence within the first and second sets of regular expression codes;

determining a second possible output of the LCS algorithm resulting from a selection of the second set of substrings as the longest common subsequence within the first and second sets of regular expression codes;

comparing a length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm; and

during the execution of the LCS algorithm, selecting either the first set of substrings as the longest common subsequence, or the second set of substrings as the longest common subsequence, based on the comparison of the length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm.

14 . The system of claim 13 , wherein the selection of either the first set of substrings as the longest common subsequence, or the second set of substrings as the longest common subsequence, corresponds to a shortest possible length of the output of the LCS algorithm.

15 . A non-transitory computer-readable media for generating regular expressions using a longest common subsequence (LCS) algorithm, the computer-readable media comprising computer-executable instructions which when executed on a computer system, cause the computer system to:

receive first input data comprising a first character sequence;

convert the first character sequence into a first set of regular expression codes, wherein the first set of regular expression codes include one or more character categories associated with characters in the first character sequence;

receive second input data comprising a second character sequence;

convert the second character sequence into a second set of regular expression codes, wherein the second set of regular expression codes include one or more character categories associated with characters in the second character sequence, and

wherein the first set of regular expression codes and the second set of regular expression codes are intermediate regular expression codes generated prior to a first regular expression and configured to map an output of executing the LCS algorithm on the first set of regular expression codes and the second set of regular expression codes to the first regular expression;

execute the longest common subsequence algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence;

capturing the output of executing the LCS algorithm on the first set of regular expression codes for the first character sequence and the second set of regular expression codes for the second character sequence; and

generate the first regular expression based on the output of the LCS algorithm, wherein the first regular expression comprises a sequence of characters defining a pattern in the output of the first set of regular expression codes and the second set of regular expression codes.

16 . The computer-readable media of claim 15 , the computer-readable media comprising additional computer-executable instructions which when executed on the computer system, cause the computer system to:

receive third input data comprising a third character sequence;

convert the third character sequence into a third set of regular expression codes;

execute the longest common subsequence (LCS) algorithm, wherein said executing comprises providing the first set of regular expression codes, the second set of regular expression codes, and the third set of regular expression codes as inputs to the execution of the LCS algorithm and capturing a second output of the LCS algorithm; and

generate a second regular expression based on the second output of the LCS algorithm.

17 . The computer-readable media of claim 15 , the computer-readable media comprising additional computer-executable instructions which when executed on the computer system, cause the computer system to, prior to executing the LCS algorithm:

convert the first set of regular expression codes into a first set of one or more span data structures, each span data structure comprising a single regular expression code and a repetition count range; and

convert the second set of regular expression codes into a second set of one or more span data structures,

wherein the first and second sets of regular expression codes are provided as inputs to the execution of the LCS algorithm via the first and second sets of span data structures.

18 . The computer-readable media of claim 17 , the computer-readable media comprising additional computer-executable instructions which when executed on the computer system, cause the computer system to:

identify a first text fragment comprising one or more characters, wherein the first text fragment is found within the first character sequence and the second character sequence;

store the first text fragment; and

after generating the first regular expression, execute a simplification process on the first regular expression, wherein the simplification process comprises replacing a corresponding portion of the first regular expression with the first text fragment.

19 . The computer-readable media of claim 18 , wherein executing the simplification process on the first regular expression comprises:

determining a first span data structure associated the first text fragment;

determining a number of times within the first and second sets of span data structures, that the first span data structure corresponds to the first text fragment; and

replacing the first span data structure within the first regular expression, with the first text fragment, in response to determining that the number of times that the first span data structure corresponds to the first text fragment within the first and second sets of span data structures, is greater than a predetermined threshold.

20 . The computer-readable media of claim 15 , wherein executing the LCS algorithm comprises:

identifying, within the first and second sets of regular expression codes, a first set of substrings and a second set of substrings, wherein the first set of substrings and the second set of substrings have the same longest common subsequence;

determining a first possible output of the LCS algorithm resulting from a selection of the first set of substrings as the longest common subsequence within the first set of regular expression codes and the second set of regular expression codes;

determining a second possible output of the LCS algorithm resulting from a selection of the second set of substrings as the longest common subsequence within the first and second sets of regular expression codes;

comparing a length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm; and

during the execution of the LCS algorithm, selecting either the first set of substrings as the longest common subsequence, or the second set of substrings as the longest common subsequence, based on the comparison of the length of the first possible output of the LCS algorithm and the length of the second possible output of the LCS algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: MALAK, MICHAEL; RIVAS, LUIS E.; KREIDER, MARK L.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 049440/0316 →
Continuity (3)
Provisional Application 62749001 · Oct 22, 2018
Provisional Application 62684498 · Jun 13, 2018
Related Publication 20190384796A1 · Dec 19, 2019
References Cited (206)
US 6373971B1 · Floratos et al. · 2002 [cited by applicant]
US 7389530B2 · Raghunath et al. · 2008 [cited by applicant]
US 7540025B2 · Tzadikario · 2009 [cited by applicant]
US 7680867B2 · Green et al. · 2010 [cited by applicant]
US 7779049B1 · Phillips · 2010 [cited by applicant]
US 7792814B2 · Cohen · 2010 [cited by applicant]
US 7814111B2 · Levin · 2010 [cited by applicant]
US 7818311B2 · Michailov · 2010 [cited by applicant]
US 8484238B2 · Loeser et al. · 2013 [cited by applicant]
US 8577817B1 · Keralapura · 2013 [cited by examiner]
US 8843508B2 · Thorup et al. · 2014 [cited by applicant]
US 8856642B1 · Riediger et al. · 2014 [cited by applicant]
US 8862603B1 · Watson et al. · 2014 [cited by applicant]
US 8892580B2 · Syrowitz et al. · 2014 [cited by applicant]
US 9959265B1 · Vagell et al. · 2018 [cited by applicant]
US 10474707B2 · Atasu · 2019 [cited by applicant]
US 11347779B2 · Malak et al. · 2022 [cited by applicant]
US 11354305B2 · Malak et al. · 2022 [cited by applicant]
US 11580166B2 · Malak et al. · 2023 [cited by applicant]
US 11755630B2 · Malak et al. · 2023 [cited by applicant]
US 11797582B2 · Malak et al. · 2023 [cited by applicant]
US 20020143780A1 · Gorman · 2002 [cited by applicant]
US 20050055365A1 · Ramakrishnan et al. · 2005 [cited by applicant]
US 20050273450A1 · McMillen et al. · 2005 [cited by applicant]
US 20050278175A1 · Hyvonen · 2005 [cited by examiner]
US 20060062468A1 · Xu et al. · 2006 [cited by applicant]
US 20070013968A1 · Ebaugh et al. · 2007 [cited by applicant]
US 20070198565A1 · Ivanov et al. · 2007 [cited by applicant]
US 20090070327A1 · Loeser et al. · 2009 [cited by applicant]
US 20090070328A1 · Loeser et al. · 2009 [cited by applicant]
US 20100174678A1 · Massand · 2010 [cited by applicant]
US 20100205201A1 · Krishmamurthy et al. · 2010 [cited by applicant]
US 20110153641A1 · Thorup et al. · 2011 [cited by applicant]
US 20110185230A1 · Agrawal et al. · 2011 [cited by applicant]
US 20110307874A1 · Messerly et al. · 2011 [cited by applicant]
US 20120124064A1 · Syrowitz · 2012 [cited by examiner]
US 20140004031A1 · Norwood et al. · 2014 [cited by applicant]
US 20140040313A1 · Shami · 2014 [cited by examiner]
US 20140122932A1 · Chen et al. · 2014 [cited by applicant]
US 20140164376A1 · Yang et al. · 2014 [cited by applicant]
US 20140258189A1 · Schmidt · 2014 [cited by applicant]
US 20140359574A1 · Beckwith et al. · 2014 [cited by applicant]
US 20140372854A1 · Otero et al. · 2014 [cited by applicant]
US 20150074507A1 · Riediger et al. · 2015 [cited by applicant]
US 20150278355A1 · Hassanpour et al. · 2015 [cited by applicant]
US 20150286346A1 · Liu et al. · 2015 [cited by applicant]
US 20150378977A1 · Moharir et al. · 2015 [cited by applicant]
US 20160026730A1 · Hasan · 2016 [cited by applicant]
US 20160092090A1 · Stojanovic et al. · 2016 [cited by applicant]
US 20160092557A1 · Stojanovic et al. · 2016 [cited by applicant]
US 20160117387A1 · Hernandez et al. · 2016 [cited by applicant]
US 20160125007A1 · Salisbury · 2016 [cited by applicant]
US 20160224531A1 · Robichaud et al. · 2016 [cited by applicant]
US 20170083613A1 · Atasu · 2017 [cited by applicant]
US 20170083616A1 · Atasu · 2017 [cited by applicant]
US 20170090874A1 · Blumenau · 2017 [cited by examiner]
US 20170091190A1 · Attias et al. · 2017 [cited by applicant]
US 20170116238A1 · Ternent et al. · 2017 [cited by applicant]
US 20170161631A1 · Rogers et al. · 2017 [cited by applicant]
US 20170220218A1 · Zhao et al. · 2017 [cited by applicant]
US 20170220543A1 · Canton et al. · 2017 [cited by applicant]
US 20170364699A1 · Goldfarb et al. · 2017 [cited by applicant]
US 20180113894A1 · Raza et al. · 2018 [cited by applicant]
US 20180276393A1 · Allen et al. · 2018 [cited by applicant]
US 20180321921A1 · Venkata · 2018 [cited by applicant]
US 20180322218A1 · Kou et al. · 2018 [cited by applicant]
US 20180367699A1 · Sato · 2018 [cited by applicant]
US 20190026437A1 · Syeda-Mahmood · 2019 [cited by applicant]
US 20190095439A1 · Cai · 2019 [cited by examiner]
CN 102567456A · 2012 [cited by applicant]
CN 102591930A · 2012 [cited by applicant]
CN 102637180A · 2012 [cited by applicant]
CN 102844759A · 2012 [cited by applicant]
CN 103617226A · 2014 [cited by applicant]
CN 103842963A · 2014 [cited by applicant]
CN 107004140A · 2017 [cited by applicant]
CN 109766483A · 2019 [cited by applicant]
JP 2005234661A · 2005 [cited by applicant]
JP 2008146162A · 2008 [cited by applicant]
JP 2009015395A · 2009 [cited by applicant]
JP 2009064430A · 2009 [cited by applicant]
JP 2010250450A · 2010 [cited by applicant]
JP 2012018667A · 2012 [cited by applicant]
JP 2014170539A · 2014 [cited by applicant]
JP 2015028699A · 2015 [cited by applicant]
JP 2016152048A · 2016 [cited by applicant]
JP 2017204108A · 2017 [cited by applicant]
JP 2017204815A · 2017 [cited by applicant]
JP 2018092283A · 2018 [cited by applicant]
JP 2019004402A · 2019 [cited by applicant]
JP 2019049823A · 2019 [cited by applicant]
JP 7386818B2 · 2023 [cited by applicant]
WO 2015011797A1 · 2015 [cited by applicant]
WO 2015012812A1 · 2015 [cited by applicant]
WO 2015141560A1 · 2015 [cited by applicant]
WO 2016119954A1 · 2016 [cited by applicant]
WO 2016161381A1 · 2016 [cited by applicant]
U.S. Appl. No. 16/438,327, Non-Final Office Action mailed on Sep. 17, 2020, 20 pages. [cited by applicant]
Arslan, Regular Expression Constrained Sequence Alignment, Journal of Discrete Algorithms, vol. 5, No. 4, Oct. 18, 2007, pp. 647-661. [cited by applicant]
Hanafi et al., SEER: Auto-Generating Information Extraction Rules from User-Specified Examples, CHI '17: Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, May 2017, pp. 6672-6682. [cited by applicant]
International Application No. PCT/US2020/038431, International Search Report and Written Opinion mailed on Sep. 15, 2020, 16 pages. [cited by applicant]
International Application No. PCT/US2020/038432, International Search Report and Written Opinion mailed on Sep. 16, 2020, 14 pages. [cited by applicant]
International Application No. PCT/US2020/038429, International Search Report and Written Opinion mailed on Sep. 28, 2020, 15 pages. [cited by applicant]
“Adjacency Matrix”, Wikipedia, Available Online at: https://en.wikipedia.org/wiki/Adjacency_matrix, accessed from Internet on Jun. 19, 2018, pp. 1-7. [cited by applicant]
“Big Data Preparation”, Online Product Page, Oracle Cloud, Available Online at: https://web.archive.org/web/20160414153654/https://cloud.oracle.com/bigdatapreparation, Jul. 24, 2019, 5 pages. [cited by applicant]
“Class Pattern”, Java™ Platform Standard Ed 8, Available Online at: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#matcher-java.lang. CharSequence-, accessed from Internet on Sep. 25, 2018, 17 pa… [cited by applicant]
“Depth-First Search”, Wikipedia, Available Online at: https://en.wikipedia.org/wiki/Depth-first_search, accessed from Internet on Jun. 19, 2018, pp. 1-7. [cited by applicant]
“Explore Suggestions”, Trifacta, Available Online at: https://docs.trifacta.com/display/SS/Explore+Suggestions, Jul. 24, 2019, 4 pages. [cited by applicant]
“Longest Common Subsequence Problem”, Wikipedia, Available Online at: https://en.wikipedia.org/wiki/Longest_common_subsequence_problem, accessed from Internet on Jun. 19, 2018, pp. 1-14. [cited by applicant]
“Lookahead and Lookbehind Zero-Length Assertions”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/lookaround.html, accessed from Internet on Jun. 19, 2018, pp. last updated: Nov. 30, 2019 pp. … [cited by applicant]
“Packages”, Scala Standard Library 2.12.0, Available Online at: https://www.scala-lang.org/api/2.12.0/scala/Int.html#to(end:Int,step:Int):scala.collection.immutable.Range.Inclusive, accessed from Internet on Jun. 21, 20… [cited by applicant]
“Parentheses for Grouping and Capturing”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/brackets.html, accessed from Internet on Jun. 19, 2018, Page last updated: Jun. 7, 2016, 1 page. [cited by applicant]
“Reading COBOL Layouts”, Tech Talk, COBOL Tutorials, Available Online at: http://www.3480-3590-data-conversion.com/article-reading-cobol-layouts-1.html, Jul. 26, 2019, 6 pages. [cited by applicant]
“Regex”, Scala Standard Library2.12.3, Available Online at: https://www.scala-lang.org/api/2.12.3/scala/util/matching/Regex.html#pattern:java.util.regex.Pattern, accessed from Internet on Sep. 25, 2018, 9 pages. [cited by applicant]
“Regex Generator++”, Machine Learning Lab, Available Online at: http://regex.inginf.units.it/, accessed from Internet on Sep. 21, 2018, 2 pages. [cited by applicant]
“Regex Tutorial-Alternation with the Vertical Bar or Pipe Symbol”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/alternation.html, accessed from Internet on Jun. 19, 2018, pp. 1-2. [cited by applicant]
“Regex Tutorial-Character Classes or Character Sets”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/charclass.html, accessed from Internet on Jun. 19, 2018, pp. 1-2. [cited by applicant]
“Regex Tutorial-Repetition with Star and Plus”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/repeat.html, accessed from Internet on Jun. 19, 2018, Page last updated: Dec. 8, 2016, pp. 1-2. [cited by applicant]
“Regex Tutorial-Unicode Characters and Properties”, Regex Tutorial, Available Online at: https://www.regular-expressions.info/unicode.html, accessed from Internet on Jun. 19, 2018, page last updated: Dec. 1, 2016, pp. 1… [cited by applicant]
“StringOps”, Scala Standard Library2.12.3, Available Online at: https://www.scala-lang.org/api/2.12.3/scala/collection/immutable/StringOps.html#head:A, accessed from Internet on Sep. 21, 2018, 75 pages. [cited by applicant]
Barsky et al., “Shortest Path Approaches for the Longest Common Subsequence of a Set of Strings”, IEEE 7th International Symposium on Bioinformatics and Bioengineering, Oct. 14-17, 2007, 7 pages. [cited by applicant]
Bartoli et al., “Active Learning of Regular Expressions for Entity Extraction”, IEEE Transactions on Cybernetics, vol. 48, No. 3, Mar. 2018, pp. 1067-1080. [cited by applicant]
Bartoli et al., “Inference of Regular Expressions for Text Extraction from Examples”, IEEE Transactions on Knowledge and Data Engineering, vol. 28, No. 5, Available Online at: http://www.human-competitive.org/sites/defa… [cited by applicant]
Brauer et al., “Enabling Information Extraction by Inference of Regular Expressions from Sample Entities”, CIKM '11 Proceedings of the 20th ACM International Conference on Information and Knowledge Management, Available… [cited by applicant]
Collins; Dave, “Designing Object-Oriented User Interfaces” Benjamin-Cummings Publishing Co., Inc, 1995, relevant pp. 270-271, 590 pages. [cited by applicant]
Denning; Peter, “Thrashing: Its Causes and Prevention”, Fall Joint computer conference, American Federation of Information Processing Societies, Available Online at: https://cs.uwaterloo.ca/˜brecht/courses/702/Possible-… [cited by applicant]
Li et al., “Regular Expression Learning for Information Extraction”, Proceedings of the 2008 Conference on Empirical Methods in Natural Language Processing, Oct. 2008, pp. 21-30. [cited by applicant]
Miller, Heather, “Style Guide, Method Invocation”, Scala, Available Online at: https://docs.scala-lang.org/style/method-invocation.html#infix-notation, accessed from Internet on Sep. 25, 2018, pp. 1-4. [cited by applicant]
Prim; R.C., “Shortest Connection Networks and Some Generalizations”, The Bell System Technical Journal, vol. 36, Issue 6, Available Online at: https://ia801407.us.archive.org/14/items/bstj36-6-1389/bstj36-6-1389.pdf, No… [cited by applicant]
Rokach et al., “A Decision Tree Framework for Semi-Automatic Extraction of Product Attributes from the Web”, Advances in Web Intelligence and Data Mining, vol. 23, Available Online at: https://link.springer.com/chapter/… [cited by applicant]
Sisto; Matt, “CSS “Ripple/Wave” Checkbox and Radio Button”, Available Online at: https://codepen.io/msisto/pen/ICofE/, Sep. 29, 2017, 2 pages. [cited by applicant]
Smetanin; Nikita, “Fuzzy String Search”, Nikita's blog, Available Online at: http://ntz-develop.blogspot.com/, Mar. 24, 2011, 7 pages. [cited by applicant]
Wagner et al., “The String-to-String Correction Problem”, Journal of the Association for Computing Machinery, vol. 21, No. 1, Available Online at: http://www.inrg.csie.ntu.edu.tw/algorithm2014/homework/Wagner-74.pdf, Ja… [cited by applicant]
Wu et al., “A Supervised Learning Algorithm for Information Extraction from Textual Data”, Available Online at: https://pdfs.semanticscholar.org/162c/d8d8dfea1d58c0da2433806b9db9f79e095b.pdf, May 2003, 12 pages. [cited by applicant]
Bergroth et al., A Survey of Longest Common Subsequence Algorithms, Proceedings Seventh International Symposium on String Processing and Information Retrieval, Sep. 27-29, 2000, pp. 39-48. [cited by applicant]
International Application No. PCT/US2019/036815, International Search Report and Written Opinion mailed on Aug. 21, 2019, 15 pages. [cited by applicant]
International Application No. PCT/US2019/036824, International Search Report and Written Opinion mailed on Aug. 21, 2019, 17 pages. [cited by applicant]
International Application No. PCT/US2019/036829, International Search Report and Written Opinion mailed on Aug. 23, 2019, 15 pages. [cited by applicant]
International Application No. PCT/US2019/036834, International Search Report and Written Opinion mailed on Aug. 27, 2019, 13 pages. [cited by applicant]
International Application No. PCT/US2019/036815, International Preliminary Report on Patentability mailed on Dec. 24, 2020, 11 pages. [cited by applicant]
Dash, et al. Parallel Algorithm for Longest Common Subsequence in a String. Proceedings of National Conference on AIRES-2012. 4 pages, Jun. 2012. [cited by applicant]
Hirschberg; Daniel, Algorithms for the Longest Common Subsequence Problem, Journal of the Association for computing Machinery, vol. 24, No. 4, pp. 664-675, Oct. 1977. [cited by applicant]
Iliopoulos, et al. A New Efficient Algorithm for Computing the Longest Common Subsequence, Theory of Computing Systems, vol. 45, 23 pages, Jan. 2009. [cited by applicant]
Iliopoulos, et al. Algorithms for Computing Variants of the Longest Common Subsequence Problem, Theoretical Computer Science, vol. 395, Issue 2-3, pp. 257-267, May 2008. [cited by applicant]
Kawade, et al. [cited by applicant]
Ozsoy, et al. [cited by applicant]
Tsai, [cited by applicant]
U.S. Appl. No. 16/483,330 received a First Action Interview Pilot Program Pre-Interview Communication mailed Jun. 15, 2021, 7 pages. [cited by applicant]
U.S. Appl. No. 16/438,330, Notice of Allow ance mailed on Sep. 8, 2021, 20 pages. [cited by applicant]
U.S. Appl. No. 16/904,273, Non-Final Office Action mailed on Sep. 2, 2021, 31 pages. [cited by applicant]
U.S. Appl. No. 16/904,316, First Action Interview Pilot Program Pre-Interview Communication mailed on Sep. 29, 2021, 5 pages. [cited by applicant]
Wang et al., Generating Regular Expression Signatures for Network Traffic Classification in Trusted Network Management, Journal of Network and Computer Applications, vol. 35, No. 3, May 2012, pp. 992-1000. [cited by applicant]
U.S. Appl. No. 16/438,321, Notice of Allow ance mailed on Jan. 5, 2022, 9 pages. [cited by applicant]
U.S. Appl. No. 16/438,325, First Action Interview Pilot Program Pre-Interview Communication mailed on Dec. 24, 2021, 15 pages. [cited by applicant]
U.S. Appl. No. 16/904,298, First Action Interview Pilot Program Pre-Interview Communication mailed on Dec. 8, 2021, 14 pages. [cited by applicant]
Kaur, [cited by applicant]
Romano et al., [cited by applicant]
U.S. Appl. No. 16/438,313, Notice of Allow ance mailed on Oct. 29, 2021, 18 pages. [cited by applicant]
U.S. Appl. No. 16/438,327 Non-Final Office Action mailed Jul. 8, 2021, 24 pages. [cited by applicant]
International European Application No. EP19737324.4, “Office Action”, mailed May 31, 2023, 8 pages. [cited by applicant]
International Application No. EP19737326.9, “Office Action”, mailed May 31, 2023, 3 pages. [cited by applicant]
International Japanese Application No. 2020-569026, Office Action, mailed on Jul. 4, 2023, 3 pages. [cited by applicant]
U.S. Appl. No. 16/904,316, “Advisory Action”, dated Sep. 16, 2022, 5 pages. [cited by applicant]
International Application No. IN202047053332, “First Examination Report”, dated Aug. 1, 2022, 7 pages. [cited by applicant]
International Application No. JP2020-569203, “Notice of Decision to Grant”, mailed Apr. 23, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 16/904,298, “Notice of Allowance”, mailed Sep. 19, 2023, 8 pages. [cited by applicant]
International India Application No. IN202147031342, “First Examination Report”, mailed Sep. 22, 2023, 11 pages. [cited by applicant]
International India Application No. IN202147032380, “First Examination Report”, dated Sep. 25, 2023, 7 pages. [cited by applicant]
International Japanese Application No. JP2020-568989, “Office Action”, dated Jul. 18, 2023, 2 pages. [cited by applicant]
International Japanese Application No. JP2020-569026, “Notice of Decision to Grant”, mailed Oct. 17, 2023, 3 pages. [cited by applicant]
International Japanese Application No. JP2020-569146, “Office Action”, mailed Jul. 18, 2023, 3 pages. [cited by applicant]
International Japanese Application No. JP2020-569203, “Office Action”, mailed Jul. 18, 2023, 7 pages. [cited by applicant]
CN201980037104.0, “Office Action”, dated Feb. 5, 2024, 20 pages. [cited by applicant]
International Application No. EP19737319.4, “Intention to Grant”, dated May 23, 2024, 8 pages. [cited by applicant]
International Application No. EP20739513.8, “Office Action”, dated Mar. 4, 2024, 7 pages. [cited by applicant]
International Application No. JP2023-193644, “Office Action”, dated Nov. 5, 2024, 3 pages. [cited by applicant]
Chinese Application No. 201980035772.X, Notice of Decision to Grant mailed on Apr. 2, 2025, 2 pages. [cited by applicant]
European Application No. 20739513.8, Summons to Attend Oral Proceedings mailed on Feb. 20, 2025, 12 pages. [cited by applicant]
Japanese Application No. 2023-193644, Office Action mailed on Apr. 15, 2025, 4 pages (5 pages of Original Document and 1 page of English Translation). [cited by applicant]
Chinese Application No. 202080014445.9, Office Action mailed on May 1, 2025, 6 pages (5 pages of Original Document and 1 page of English Translation). [cited by applicant]
U.S. Appl. No. 16/438,325, “Final Office Action”, dated Aug. 16, 2022, 15 pages. [cited by applicant]
U.S. Appl. No. 16/904,298, “Final Office Action”, mailed Aug. 17, 2022, 14 pages. [cited by applicant]
International Application No. EP19737323.6, “Office Action”, mailed May 24, 2022, 11 pages. [cited by applicant]
International Application No. IN202047048906, “First Examination Report”, mailed Aug. 1, 2022, 7 pages. [cited by applicant]
International Application No. IN202047052875, “First Examination Report”, mailed Jun. 22, 2022, 7 pages. [cited by applicant]
International Application No. CN201980035772.X, “Office Action”, dated Jun. 29, 2024, 14 pages. [cited by applicant]
International Application No. CN201980036133.5, “Office Action”, dated Jul. 1, 2024, 13 pages. [cited by applicant]
U.S. Appl. No. 16/438,325, “Non-Final Office Action”, mailed Feb. 15, 2023, 16 pages. [cited by applicant]
U.S. Appl. No. 16/904,298, “Non-Final Office Action”, mailed Feb. 16, 2023, 14 pages. [cited by applicant]
U.S. Appl. No. 17/711,907, “Non-Final Office Action”, mailed Dec. 22, 2022, 7 pages. [cited by applicant]
International Application No. JP2020-568989, “Notice of Decision to Grant”, mailed Oct. 31, 2023, 3 pages. [cited by applicant]
International Application No. JP2020-569146, “Notice of Decision to Grant”, mailed Oct. 31, 2023, 3 pages. [cited by applicant]
Application No. JP2021-539844 , Notice of Decision to Grant, mailed on Jan. 21, 2025, 4 pages. [cited by applicant]
Application No. JP2021-539845 , Notice of Decision to Grant, mailed on Jan. 21, 2025, 3 pages. [cited by applicant]
International Application No. JP2021-539860, “Notice of Decision to Grant”, mailed Jul. 30, 2024, 3 pages. [cited by applicant]
U.S. Appl. No. 16/904,316, Final Office Action mailed on May 19, 2022, 12 pages. [cited by applicant]
U.S. Appl. No. 16/904,316, “Corrected Notice of Allowability”, mailed Nov. 1, 2022, 4 pages. [cited by applicant]
U.S. Appl. No. 16/904,316, “Notice of Allowance”, mailed Oct. 18, 2022, 12 pages. [cited by applicant]
Thompson et al., “Multiple Sequence Alignment Using ClustalW and ClustalX”, Current protocols in bioinformatics, 2003. [cited by applicant]
West et al., “EyePatterns: Software for Identifying Patterns and Similarities Across Fixation Sequences”, Proceedings of the 2006 symposium on Eye tracking research & applications, 2006, pp. 149-154. [cited by applicant]
International Application No. CN202080014471.1, “Office Action”, mailed May 9, 2025, 18 pages. [cited by applicant]
International Application No. CN202080014473.0, “Office Action”, mailed May 16, 2025, 29 pages. [cited by applicant]
International Application No. IN202147030678, “First Examination Report”, dated Mar. 5, 2024, 8 pages. [cited by applicant]
International Application No. CN201980037345.5, “Office Action”, mailed Feb. 28, 2024, 7 pages. [cited by applicant]
Application No. CN202080014445.9, Office Action, mailed on Sep. 20, 2025, 5 pages. [cited by applicant]
Application No. CN202080014471.1, Notice of Decision to Grant, mailed on Oct. 27, 2025, 4 pages. [cited by applicant]