Content deleted Content added
←Created page with '{{subst:AFC submission/draftnew}}<!-- Important, do not remove this line before article has been created. --> In computer science, the '''Krauss matching wil...' |
Jnestorius (talk | contribs) |
||
(15 intermediate revisions by 9 users not shown) | |||
Line 1:
In [[computer science]], the '''Krauss wildcard-matching
▲In [[computer science]], the '''Krauss matching wildcards algorithm''' is a [[pattern matching]] algorithm. Based on the [[wildcard character|wildcard syntax]] in common use, e.g. in the [[Microsoft Windows]] [[command-line interface]], the algorithm provides a non-[[Recursion|recursive]] mechanism for matching patterns in software applications, based on syntax simpler than that typically offered by [[regular expression]]s.
== History ==
The algorithm is based on a history of development, correctness and performance testing, and programmer feedback that began with an unsuccessful search for a reliable non-recursive algorithm for matching wildcards. An initial algorithm, implemented in a single while loop, quickly prompted comments from software developers, leading to improvements.<ref>{{cite
== Usage ==
The algorithm made available under the Apache license is implemented in both [[Pointer (computer programming)|pointer]]-based [[C++]] and portable C++ (implemented without pointers). The test case code, also available under the Apache license, can be applied to any algorithm that provides the pattern matching operations below. The implementation as coded is unable to handle [[Variable-width encoding|multibyte character sets]] and poses problems when the text being searched may contain multiple incompatible character sets.
=== Pattern matching operations ===
The algorithm supports three pattern matching operations:
* A one-to-one match is performed between the pattern and the source to be checked for a match, with the exception of asterisk ([[*]]) or question mark ([[?]]) characters in the pattern.
Line 18 ⟶ 17:
* ''mini*'' matches any string that begins with "mini" (including the string "mini" itself).
* ''???*'' matches any string of three or more letters.
== Applications ==
The original algorithm has been ported to the [[DataFlex]] programming language by Larry Heiges<ref>{{cite web| work=Data Access Worldwide Code Library| last=Heiges| first=Larry| title=Text compare function - generalTextCompare.txt| year=2008| url=https://support.dataaccess.com/Forums/showthread.php?1064-Text-compare-function-generalTextCompare-txt-(0-1)}}</ref> for use with [[Visual DataFlex|Data Access Worldwide]] code library. It has been posted on GitHub in modified form as part of a log file reader.<ref>{{cite web| last=Deniskore| work=Popular repositories| title=Deniskore/wildcard/CLogReader.cpp| publisher=GitHub| year=2013| url=https://github.com/Deniskore/wildcard/blob/master/CLogReader.cpp}} Lines 173-279.</ref> The 2014 algorithm is part of the Unreal Model Viewer built into the Epic Games [[Unreal Engine]] [[game engine]].<ref>{{cite web| last=gildor2| work=Unreal Engine Model Viewer (UE Viewer)| title=UModel/Core/Core.cpp| publisher=GitHub| year=2016| url=https://github.com/gildor2/UModel/blob/master/Core/Core.cpp}} Lines 334-435.</ref><ref>{{cite web| last=gildor2| work=Unreal Engine Model Viewer (UE Viewer)| title=History for UModel/Core/Core.cpp| year=2016| url=https://github.com/gildor2/UModel/commits/master/Core/Core.cpp}}</ref>
== See also ==
Line 26 ⟶ 28:
== References ==
{{reflist}}
[[Category:Pattern matching]]
|