Regular Expression Search Algorithm
E162100
Regular Expression Search Algorithm is a pattern-matching method for efficiently finding text strings that match specified regular expressions, originally developed and formalized by computer scientist Ken Thompson.
All labels observed (1)
| Label | Occurrences |
|---|---|
| Regular Expression Search Algorithm canonical | 1 |
How this entity was disambiguated
This entity first appeared as the object of triple T1413073 — resolving that mention is where its identity was fixed. The disambiguator weighed these candidate entities and picked the highlighted one (or “None”, minting a new entity). This is how homonymy is resolved: the same surface form can point to different entities.
Target entity: Regular Expression Search Algorithm Context triple: [Ken Thompson, thesisTitle, Regular Expression Search Algorithm]
-
A.
Knuth–Morris–Pratt algorithm
The Knuth–Morris–Pratt algorithm is a classic linear-time string-searching algorithm that efficiently finds occurrences of a pattern within a text by precomputing a prefix function to avoid redundant comparisons.
-
B.
GNU Grep
GNU Grep is the GNU Project’s free, open-source implementation of the grep command-line utility used for fast text searching and pattern matching in files.
-
C.
ripgrep
ripgrep is a fast, command-line search tool written in Rust that recursively searches directories using regular expressions and is widely used as a modern alternative to grep.
-
D.
GNU Findutils
GNU Findutils is a collection of essential GNU utilities, including the widely used `find`, `locate`, `updatedb`, and `xargs` tools, for searching and managing files on Unix-like systems.
-
E.
Search and Discovery
Search and Discovery is a regular Physics Today section that highlights notable recent advances and findings across the physical sciences.
- F. None of above. chosen
- G. Unsure - the case is ambiguous/there is not enough information to decide.
Target entity: Regular Expression Search Algorithm Target entity description: Regular Expression Search Algorithm is a pattern-matching method for efficiently finding text strings that match specified regular expressions, originally developed and formalized by computer scientist Ken Thompson.
-
A.
Knuth–Morris–Pratt algorithm
The Knuth–Morris–Pratt algorithm is a classic linear-time string-searching algorithm that efficiently finds occurrences of a pattern within a text by precomputing a prefix function to avoid redundant comparisons.
-
B.
GNU Grep
GNU Grep is the GNU Project’s free, open-source implementation of the grep command-line utility used for fast text searching and pattern matching in files.
-
C.
ripgrep
ripgrep is a fast, command-line search tool written in Rust that recursively searches directories using regular expressions and is widely used as a modern alternative to grep.
-
D.
GNU Findutils
GNU Findutils is a collection of essential GNU utilities, including the widely used `find`, `locate`, `updatedb`, and `xargs` tools, for searching and managing files on Unix-like systems.
-
E.
Search and Discovery
Search and Discovery is a regular Physics Today section that highlights notable recent advances and findings across the physical sciences.
- F. None of above. chosen
Statements (49)
| Predicate | Object |
|---|---|
| instanceOf |
computer science concept
ⓘ
pattern-matching algorithm ⓘ string-search algorithm ⓘ |
| basedOn |
finite automata theory
ⓘ
regular expressions ⓘ |
| developedBy | Ken Thompson ⓘ |
| era | late 1960s ⓘ |
| field |
computer science
ⓘ
software engineering ⓘ theoretical computer science ⓘ |
| formalizedBy | Ken Thompson ⓘ |
| influenced |
UNIX text processing tools
ⓘ
modern regex libraries ⓘ |
| influencedBy |
automata theory
ⓘ
formal language theory ⓘ |
| input |
regular expression pattern
ⓘ
text string ⓘ |
| notableImplementation |
DFA-based regex engine
ⓘ
Thompson's algorithm for regular expression matching ⓘ
surface form:
Thompson NFA construction
backtracking regex engine ⓘ |
| originallyUsedIn | UNIX text processing ⓘ |
| output |
positions of matches in text
ⓘ
set of matches ⓘ |
| property |
can be implemented using backtracking
ⓘ
can be implemented using finite automata ⓘ supports complex pattern operators ⓘ |
| relatedTo |
lexical analysis
ⓘ
pattern matching in programming languages ⓘ string-search algorithm ⓘ |
| solvesProblem |
matching strings against regular expressions
ⓘ
searching text for patterns ⓘ |
| supports |
Kleene star operator
ⓘ
alternation operator ⓘ anchors ⓘ character classes ⓘ concatenation operator ⓘ |
| timeComplexity |
linear time for DFA-based implementations
ⓘ
potentially exponential time for naive backtracking implementations ⓘ varies by implementation ⓘ |
| usedIn |
compilers
ⓘ
data validation systems ⓘ programming language runtimes ⓘ search tools ⓘ text editors ⓘ |
| usesConcept |
backtracking
ⓘ
deterministic finite automaton ⓘ NFA ⓘ
surface form:
nondeterministic finite automaton
pattern matching ⓘ state machine ⓘ |
How these facts were elicited
The pipeline generated the facts above by prompting gpt-5.1 with this entity's name + description and the instruction below.
You are a knowledge base construction expert. Given a subject entity and a description of it, return factual statements that you know for the subject as a JSON list of dictionaries(triples), where keys must be "subject", "predicate" and "object". The number of facts may be very high, between 25 to 50 or more, for very popular subjects. For less popular subjects, the number of facts can be very low, like 5 or 10. # Requirements - If you don't know the subject at all, return an empty list. - If the subject is not a named entity, return an empty list. - Include at least one triple where predicate is "instanceOf". - Do not get too wordy. - Separate several objects into multiple triples with one object.
Subject: Regular Expression Search Algorithm Description of subject: Regular Expression Search Algorithm is a pattern-matching method for efficiently finding text strings that match specified regular expressions, originally developed and formalized by computer scientist Ken Thompson.
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.