Overview
Libraries
[^] formerly called Regex++
^ included since version 2.13.0
Applications
Languages
Language features
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.
Part 1
Language feature comparison (part 1)
|
"+" quantifier |
Negated character classes |
Lazy quantifiers |
Grouping-only parentheses |
Lookahead |
Lookbehind |
Backreferences |
>9 indexable captures |
|
Boost.Regex |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
? |
|
EmEditor |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
|
GLib/GRegex |
? |
? |
? |
? |
? |
? |
? |
? |
|
GNU Grep |
Yes |
Yes |
No |
No |
No |
No |
Yes |
? |
|
Haskell |
Yes |
Yes |
? |
? |
? |
? |
? |
? |
|
ICU Regex |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
JGsoft |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
.NET |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
OmniOutliner 3.6.2 |
Yes |
Yes |
Yes |
No |
No |
No |
? |
? |
|
PCRE |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Perl |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
PHP |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
Python |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
QT/QRegExp |
Yes |
Yes |
Yes † |
Yes |
Yes |
No |
Yes |
? |
|
Ruby |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
|
TRE |
Yes |
Yes |
Yes |
Yes |
No |
No |
Yes |
? |
|
Vim |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
- ^ only
global not local per quantifier
Part 2
Language feature comparison (part 2)
|
Directives † |
Conditionals |
Atomic groups † |
Named capture † |
Comments |
Embedded code |
Partial matching |
Fuzzy matching |
Unicode property support [10] |
|
Boost.Regex |
Yes |
Yes |
? |
? |
Yes |
No |
Yes |
No |
Yes † |
|
EmEditor |
? |
? |
? |
? |
? |
No |
No |
No |
? |
|
GLib/GRegex |
? |
? |
? |
? |
? |
No |
Yes |
No |
Yes † |
|
GNU Grep |
? |
? |
? |
? |
? |
No |
? |
No |
No |
|
Haskell |
? |
? |
? |
? |
? |
No |
? |
No |
No |
|
ICU Regex |
Yes |
Yes |
Yes |
? |
Yes |
No |
No |
No |
Yes |
|
JGsoft |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
? |
Yes |
|
.NET |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
? |
No |
Yes |
|
OmniOutliner 3.6.2 |
? |
? |
? |
? |
No |
No |
? |
No |
? |
|
PCRE |
Yes |
Yes |
? |
Yes † |
Yes |
No |
Yes |
No |
Yes † |
|
Perl |
Yes |
Yes |
Yes |
Yes † |
Yes |
Yes |
No |
No |
Yes |
|
PHP |
Yes |
Yes |
? |
? |
Yes |
No |
No |
No |
No |
|
Python |
Yes |
Yes |
No |
Yes |
Yes |
No |
No |
No |
Yes † |
|
QT/QRegExp |
No |
No |
No |
No |
No |
No |
No |
No |
Yes |
|
Ruby |
Yes |
No |
No |
No |
Yes |
No |
No |
No |
No |
|
TRE |
No |
No |
No |
No |
No |
No |
No |
Yes |
? |
|
Vim |
Yes |
? |
Yes |
? |
? |
No |
? |
No |
? |
- ^ 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
- ^ Available as of PCRE 7.0 (as of PCRE 4.0 with Python-like syntax
(?P<name>...))
- ^ Available as of perl 5.9.5
- ^ Requires optional Unicode support enabled.
API features
API feature comparison
|
Native UTF-16 support † |
Native UTF-8 support † |
Non-linear input support |
Dot-matches-newline option |
Anchor-matches-newline option |
|
Boost.Regex |
No |
No |
? |
? |
? |
|
GLib/GRegex |
No |
Yes † |
No |
Yes |
Yes |
|
ICU Regex |
Yes |
No |
No |
Yes |
? |
|
.NET |
Yes |
No |
Yes |
Yes |
? |
|
PCRE |
No |
Yes † |
No |
Yes |
Yes |
|
QT/QRegExp |
Yes |
No |
No |
No |
No |
|
TRE |
No |
? |
Yes |
Yes |
Yes |
- ^
Native support means that conversion between UTF-16 <-> UTF-8 isn't required, the Unicode properties are supported, and the
encoding type is always available (platform dependent wchar_t doesn't count).
External links
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)