मुक्त ज्ञानकोश विकिपीडिया से
यहाँ रेग्युलर एक्सप्रेशन के इंजनों की विभिन्न दृष्टियों से तुलना की गयी है।
रेग्युलर इक्सप्रेशन की लाइब्रेरियों की सूची
नाम
वेबसाइट
प्रोग्रामन भाषा
सॉफ्टवेयर लाइसेंस
कहाँ प्रयुक्त
Boost .Regex[Note 1]
Boost C++ Libraries
C++
Boost
Notepad++ >= 6.0.0, EmEditor
Boost.Xpressive
Boost C++ Libraries
C++
Boost
CL-PPCRE
Edi Weitz
Common Lisp
BSD
cppre
Jeff Stuart
C++
GPL
DEELX
RegExLab
C++
Free personal and commercial use
FREJ[Note 2]
Fuzzy Regular Expressions for Java
Java
LGPL
GLib /GRegex[Note 3]
GLib reference manual
C
LGPL
GRETA
Microsoft Research
C++
?
Helios RXPF
Titan IC
RTL
Proprietary
hardware accelerated regex engine for cybersecurity OEMs
ICU
International Components for Unicode
C, C++[Note 4]
ICU
Foundation (Apple and Swift open-source versions)
Jakarta /Regexp
The Apache Jakarta Project
Java
Apache
java.util.regex
Java's User manual
Java
Proprietary Java license
jEdit
JRegex
JRegex
Java
BSD
Oniguruma
Kosako
C
BSD
Atom , Take Command Console , Tera Term , TextMate , Sublime Text , SubEthaEdit , EmEditor and jq
Pattwo
Stevesoft
Java (compatible with Java 1.0)
LGPL
PCRE
pcre.org
C, C++[Note 5]
BSD
Nginx , Julia , HHVM , Notepad++ < 6.0.0, PHP
Qt /QRegExp
Digia
C++
Qt GNU GPL v. 3.0 ,
Qt GNU LGPL v. 2.1 ,
Qt Commercial
Kate , Kile
regex - Henry Spencer 's regular expression libraries
ArgList
C
BSD
RE2
RE2
C++
BSD
Henry Spencer 's Advanced Regular Expressions
Tcl
C
BSD
Hyperscan
Intel
C, x86-specific assembly (SSSE3 +[1] )
3-clause BSD
SubReg
Matt Bucknall
C
MIT
TRE [Note 2]
Ville Laurikari
C
BSD
TPerlRegEx
TPerlRegEx VCL Component
Object Pascal
MPLv1.1
TRegExpr
RegExp Studio
Object Pascal
Dual-license: freeware , or LGPL with static linking exception
Total Commander
RGX
RGX
C++ based component library
P6R
XRegExp
XRegExp
JavaScript
MIT
Wolfram Language (Mathematica )
Wolfram Language Documentation Center
Wolfram Language
Mathematica , the Wolfram Development Platform
↑ Formerly called Regex++
↑ अ आ One of fuzzy regular expression engines
↑ Included since version 2.13.0
↑ ICU4J, the Java version, does not support regular expressions.
↑ C++ bindings were developed by Google and became officially part of PCRE in 2006.
उन प्रोग्रामन भाषाओं की सूची जिनमें रेग्युलर इक्सप्रेसन का उपयोग हुआ है।
भाषा
जालस्थल
सॉफ्टवेयर लाइसेंस
टिप्पणी
.NET
MSDN
MIT License [Note 1] [Note 2]
POSIX C (C )
libc/regex from BSD
BSD
According to regex(3) , available from at least 4.4BSD (if not earlier)
C++11 (C++ )
C++ standards website
?
Since ISO14822:2011(e)
D
D
Boost Software License [Note 3]
Go
Golang.org
BSD-style
Haskell
Haskell.org
BSD3
Omitted in the language report, and in GHC's Hierarchical Libraries
Java
Java
GNU General Public License
REs are written as strings in source code: all backslashes must be doubled, harming readability.
JavaScript (ECMAScript )
ECMA-262
BSD3
Limited but REs are first-class citizens of the language with a specific /.../mod
syntax.
Julia
JuliaLang.org
MIT License
REs are part of the language core library using PCRE built-in and an optional wrapper for (C code) ICU is available.
Lua
Lua.org
MIT License
Uses simplified, limited dialect; can be bound to more powerful library, like PCRE or an alternative parser like LPeg.
Mathematica
Wolfram
Proprietary
Nim
nim-lang.org
MIT License
Standard library includes PCRE-based re and nre modules, as well as various alternatives (ex. strutils , pegs (Parsing Expression Grammar matching), strscans , parseutils , etc).
Free Pascal (Object Pascal )
www.freepascal.org
LGPL with static linking exception
Free Pascal 2.6+ ships with TRegExpr from Sorokin and two other regular expression libraries; See wiki.lazarus.freepascal.org/Regexpr .
OCaml
Caml
LGPL
2010 के अनुसार [update] , the standard module is generally regarded as deprecated;[2] often recommended libraries are pcre (with full support for PCRE) and re (which is not as complete but claims better performance and provides frontends to popular syntaxes: PCRE, Perl, Posix, Emacs, shell globbing).
Perl
Perl.com
Artistic License , or GNU General Public License
Full, central part of the language
PHP
PHP.net
PHP License
Has two implementations, with PCRE being the more efficient in speed, functions
Python
python.org
Python Software Foundation License
Python has two major implementations, the built in re and the regex library.
Ruby
ruby-doc.org
GNU Library General Public License
Ruby 1.8 and 1.9 use different engines; 1.9 integrates Oniguruma.
SAP ABAP
SAP.com
Proprietary
Tcl
tcl.tk
Tcl/Tk License (BSD-style)
Tcl library doubles as a regular expression library.
ActionScript 3
ActionScript Technology Center
Free
Wolfram Language
Wolfram Research
Proprietary ; usable for free on a limited scale on the Wolfram Development platform.
भाषाओं के प्रमुख विशेषताएँ [ संपादित करें ]
NOTE: An application using a library for regular expression support does not necessarily offer the full set of features of the library, e.g. GNU grep which uses PCRE does not offer lookahead support, though PCRE does.
Language feature comparison (part 1)
"+" quantifier
Negated character classes
Non-greedy quantifiers[Note 1]
Shy groups[Note 2]
Recursion
Look-ahead
Look-behind
Backreferences[Note 3]
>9 indexable captures
Boost.Regex
हाँ
हाँ
हाँ
हाँ
हाँ[Note 4]
हाँ
हाँ
हाँ
हाँ
Boost.Xpressive
हाँ
हाँ
हाँ
हाँ
हाँ[Note 5]
हाँ
हाँ
हाँ
हाँ
CL-PPCRE
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
EmEditor
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
नहीं
FREJ
नहीं[Note 6]
नहीं
Some[Note 6]
हाँ
नहीं
नहीं
नहीं
हाँ
हाँ
GLib /GRegex
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
GNU grep
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
?
Haskell
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
Helios RXPF
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
हाँ
हाँ
ICU Regex
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
Java
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
JavaScript (ECMAScript )
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
नहीं
हाँ
हाँ
JGsoft
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
Lua
हाँ
हाँ
Some[Note 7]
नहीं
नहीं
नहीं
नहीं
हाँ
नहीं
.NET
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
OCaml
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
नहीं
हाँ
नहीं
OmniOutliner 3.6.2
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
?
?
PCRE
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
Perl
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
PHP
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
Python
हाँ
हाँ
हाँ
हाँ
हाँ[Note 8]
हाँ
हाँ
हाँ
हाँ
Qt /QRegExp
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
नहीं
हाँ
हाँ
R [Note 9]
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
RE2
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
हाँ
Ruby
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
TRE
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
हाँ
नहीं
Vim साँचा:Latest preview release/Vim
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
नहीं
RGX
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
Tcl
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
हाँ
हाँ
हाँ
TRegExpr
हाँ
?
हाँ
?
?
?
?
?
?
XRegExp
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
नहीं
हाँ
हाँ
↑ Non-greedy quantifiers match as few characters as possible, instead of the default as many. Note that many older, pre-POSIX engines were non-greedy and didn't have greedy quantifiers at all.
↑ Shy groups , also called non-capturing groups cannot be referred to with backreferences; non-capturing groups are used to speed up matching where the group's content does not need to be accessed later.
↑ Backreferences enable referring to previously matched groups in later parts of the regex and/or replacement string (where applicable). For instance, ([ab]+)\1 matches "abab" but not "abaab".
↑ "संग्रहीत प्रति" . मूल से 25 मार्च 2018 को पुरालेखित. अभिगमन तिथि 15 जुलाई 2018 .
↑ "संग्रहीत प्रति" . मूल से 16 जुलाई 2017 को पुरालेखित. अभिगमन तिथि 15 जुलाई 2018 .
↑ अ आ FREJ have no repetitive quantifiers, but have "optional" element which behaves similar to simple "?" quantifier.
↑ Lua's only non-greedy quantifier is -
, which is a non-greedy version of *
. It does not have non-greedy versions of +
or ?
; in the former case, the non-greedy effect can be achieved by repeating the token followed by -
, but in the latter case, there is no equivalent.
↑ Supported by the optional regex Archived 2018-03-16 at the वेबैक मशीन library only.
↑ "Regular Expressions as used in R" . मूल से 4 जुलाई 2018 को पुरालेखित. अभिगमन तिथि 15 जुलाई 2018 .
Language feature comparison (part 2)
Directives[Note 1]
Conditionals
Atomic groups[Note 2]
Named capture[Note 3]
Comments
Embedded code
Unicode property support [3]
Balancing groups[Note 4]
Variable-length look-behinds[Note 5]
Boost.Regex
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
Some[Note 6]
नहीं
नहीं
Boost.Xpressive
हाँ
नहीं
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
CL-PPCRE
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
Some[Note 6]
नहीं
नहीं
EmEditor
हाँ
हाँ
?
?
हाँ
नहीं
?
नहीं
नहीं
FREJ
नहीं
नहीं
हाँ
हाँ
हाँ
नहीं
?
नहीं
नहीं
GLib /GRegex
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
Some[Note 6]
नहीं
नहीं
GNU grep
हाँ
हाँ
?
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
Haskell
?
?
?
?
?
नहीं
नहीं
नहीं
नहीं
Helios RXPF
हाँ
हाँ
नहीं
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
ICU Regex
हाँ
नहीं
हाँ
हाँ[Note 7]
हाँ
नहीं
हाँ
नहीं
नहीं
Java
हाँ
नहीं
हाँ
हाँ[Note 8]
हाँ
नहीं
Some[Note 6]
नहीं
नहीं
JavaScript (ECMAScript )
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
JGsoft
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
Some[Note 6]
नहीं
हाँ
Lua
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
.NET
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
Some[Note 6]
हाँ
हाँ
OCaml
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
OmniOutliner 3.6.2
?
?
?
?
नहीं
नहीं
?
नहीं
नहीं
PCRE
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
Perl
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
PHP
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
नहीं
नहीं
नहीं
Python
हाँ
हाँ
हाँ[Note 9]
हाँ
हाँ
नहीं
हाँ[Note 10]
नहीं
हाँ[Note 9]
Qt /QRegExp
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
नहीं
RE2
हाँ
नहीं
?
हाँ
नहीं
नहीं
Some[Note 6]
नहीं
नहीं
Ruby
हाँ
हाँ
हाँ
हाँ
हाँ
हाँ
Some[Note 6]
नहीं
नहीं
Tcl
हाँ
नहीं
हाँ
नहीं
हाँ
नहीं
हाँ
नहीं
नहीं
TRE
हाँ
नहीं
नहीं
नहीं
हाँ
नहीं
?
नहीं
नहीं
Vim
हाँ
नहीं
हाँ
नहीं
नहीं
नहीं
नहीं
नहीं
हाँ
RGX
हाँ
हाँ
हाँ
हाँ
हाँ
नहीं
हाँ
नहीं
नहीं
XRegExp
Leading only
नहीं
नहीं
हाँ
हाँ
नहीं
हाँ
नहीं
नहीं
↑ Also known as Flags modifiers or Option letters . Example pattern: "(?i:test)".
↑ Also called Independent sub-expressions
↑ Similar to back references but with names instead of indices
↑ Special feature allowing to match balanced constructs without recursion
↑ Refers to the possibility of including quantifiers in look-behinds, thus making their length unpredictable
↑ अ आ इ ई उ ऊ ए ऐ Unicode property support may be incomplete (products are continuously updated!). All will be incomplete when a new Unicode
revision is released until they are updated to comply.
↑ Available as of ICU55
↑ Available as of JDK7
↑ अ आ Supported by the optional regex library only.
↑ May only be available in the regex library when used with Python versions after 3.3
↑ अ आ Means the format can be used internally without explicit conversion.
↑ Partial match of the whole regular expression. For example the pattern ".*END$" will match any string partially, but only strings ending with END fully.[1]
↑ Supports Unicode 4.0 standard from 2003; latest plans for JDK7 include Unicode 6.0 (2011) support.[2]
↑ Implementation uses original UCS-2 support/features, so it only recognizes 64K chars total (vs UTF-16 's 1,112,064 characters). A Microsoft developer-representative answered a bug report on this as "will not fix" in 2010.[3] .
↑ Since version 8.30
↑ Tcl includes facilities to convert to and from UTF-8.
↑ wxRegEx uses any system supplied POSIX library or if not available and for Unicode mode uses Henry Spencer 's library.