From 3fc6433d44959f26b01551944fb8f743a7cf046e Mon Sep 17 00:00:00 2001
From: John Maddock The following tables provide comparisons between the following regular
+
+ The following tables provide comparisons between the following regular
expression libraries: Henry Spencer's regular expression library
- this is provided for comparison as a typical non-backtracking implementation. Philip Hazel's PCRE library. Machine: Intel Pentium 4 2.8GHz PC. Compiler: Microsoft Visual C++ version 7.1. C++ Standard Library: Dinkumware standard library version 313. OS: Win32. Boost version: 1.31.0. PCRE version: 3.9. As ever care should be taken in interpreting the results, only sensible regular
+ Philip Hazel's PCRE library. Machine: Intel Pentium 4 2.8GHz PC. Compiler: Microsoft Visual C++ version 7.1. C++ Standard Library: Dinkumware standard library version 313. OS: Win32. Boost version: 1.31.0. PCRE version: 3.9.
+ As ever care should be taken in interpreting the results, only sensible regular
expressions (rather than pathological cases) are given, most are taken from the
Boost regex examples, or from the Library of
Regular Expressions. In addition, some variation in the relative
performance of these libraries can be expected on other machines - as memory
access and processor caching effects can be quite large for most finite state
- machine algorithms. In each case the first figure given is the relative
- time taken (so a value of 1.0 is as good as it gets), while the second figure
- is the actual time taken. The following are the average relative scores for all the tests: the perfect
- regular expression library would score 1, in practice anything less than 2
- is pretty good.Regular Expression Performance Comparison
- Details
- Details
+ Averages
-
-
-
-
- GRETA
- GRETA
-
- (non-recursive mode)Boost
- Boost + C++ locale
- POSIX
- PCRE
-
-
- 6.90669
- 23.751
- 1.62553
- 1.38213
- 110.973
- 1.69371
-
-
+ machine algorithms.
The following are the average relative scores for all the tests: the perfect + regular expression library would score 1, in practice any small number + (say less that 4 or 5) is pretty good.
+GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
2.31619 | +6.14203 | +2.30668 | +1.94363 | +124.752 | +2.09365 | +
For each of the following regular expressions the time taken to find all occurrences of the expression within a long English language text was measured (mtent12.txt from Project Gutenberg, 19Mb).
-Expression | -GRETA | -GRETA - (non-recursive mode) |
- Boost | -Boost + C++ locale | -POSIX | -PCRE | -
Twain |
- 19.7 - (0.541s) |
- 85.5 - (2.35s) |
- 3.09 - (0.0851s) |
- 3.09 - (0.0851s) |
- 131 - (3.6s) |
- 1 - (0.0275s) |
-
Huck[[:alpha:]]+ |
- 11 - (0.55s) |
- 93.4 - (4.68s) |
- 3.4 - (0.17s) |
- 3.35 - (0.168s) |
- 124 - (6.19s) |
- 1 - (0.0501s) |
-
[[:alpha:]]+ing |
- 11.3 - (6.82s) |
- 21.3 - (12.8s) |
- 1.83 - (1.1s) |
- 1 - (0.601s) |
- 6.47 - (3.89s) |
- 4.75 - (2.85s) |
-
^[^ ]*?Twain |
- 5.75 - (1.15s) |
- 17.1 - (3.43s) |
- 1 - (0.2s) |
- 1.3 - (0.26s) |
- NA | -3.8 - (0.761s) |
-
Tom|Sawyer|Huckleberry|Finn |
- 28.5 - (3.1s) |
- 77.2 - (8.4s) |
- 2.3 - (0.251s) |
- 1 - (0.109s) |
- 191 - (20.8s) |
- 1.77 - (0.193s) |
-
(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn) |
- 16.2 - (4.14s) |
- 49 - (12.5s) |
- 1.65 - (0.42s) |
- 1 - (0.255s) |
- NA | -2.43 - (0.62s) |
-
Expression | +GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
Twain |
+ 1 + (0.0407s) |
+ 1 + (0.0407s) |
+ 4.18 + (0.17s) |
+ 4.18 + (0.17s) |
+ 135 + (5.48s) |
+ 1.37 + (0.0557s) |
+
Huck[[:alpha:]]+ |
+ 1.02 + (0.0381s) |
+ 1 + (0.0375s) |
+ 4.53 + (0.17s) |
+ 4.54 + (0.17s) |
+ 166 + (6.23s) |
+ 1.34 + (0.0501s) |
+
[[:alpha:]]+ing |
+ 4.3 + (4.18s) |
+ 9.93 + (9.65s) |
+ 1.15 + (1.12s) |
+ 1 + (0.972s) |
+ 8.15 + (7.92s) |
+ 5.85 + (5.69s) |
+
^[^ ]*?Twain |
+ 6.25 + (1.84s) |
+ 20.9 + (6.16s) |
+ 1.56 + (0.461s) |
+ 1 + (0.295s) |
+ NA | +2.58 + (0.761s) |
+
Tom|Sawyer|Huckleberry|Finn |
+ 6.53 + (0.711s) |
+ 11.5 + (1.25s) |
+ 2.3 + (0.251s) |
+ 1 + (0.109s) |
+ 196 + (21.4s) |
+ 1.77 + (0.193s) |
+
(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn) |
+ 3.88 + (0.972s) |
+ 6.48 + (1.62s) |
+ 1.66 + (0.416s) |
+ 1 + (0.251s) |
+ NA | +2.48 + (0.62s) |
+
For each of the following regular expressions the time taken to find all occurrences of the expression within a medium sized English language text was measured (the first 50K from mtent12.txt).
-Expression | -GRETA | -GRETA - (non-recursive mode) |
- Boost | -Boost + C++ locale | -POSIX | -PCRE | -
Twain |
- 9.49 - (0.00274s) |
- 40.7 - (0.0117s) |
- 1.54 - (0.000445s) |
- 1.56 - (0.00045s) |
- 13.5 - (0.00391s) |
- 1 - (0.000289s) |
-
Huck[[:alpha:]]+ |
- 14.3 - (0.0027s) |
- 62.3 - (0.0117s) |
- 2.26 - (0.000425s) |
- 2.29 - (0.000431s) |
- 1.27 - (0.000239s) |
- 1 - (0.000188s) |
-
[[:alpha:]]+ing |
- 7.34 - (0.0178s) |
- 13.7 - (0.0331s) |
- 1 - (0.00243s) |
- 1.02 - (0.00246s) |
- 7.36 - (0.0178s) |
- 5.87 - (0.0142s) |
-
^[^ ]*?Twain |
- 8.34 - (0.00579s) |
- 24.8 - (0.0172s) |
- 1.52 - (0.00105s) |
- 1 - (0.000694s) |
- NA | -2.81 - (0.00195s) |
-
Tom|Sawyer|Huckleberry|Finn |
- 12.9 - (0.00781s) |
- 35.1 - (0.0213s) |
- 1.67 - (0.00102s) |
- 1 - (0.000606s) |
- 81.5 - (0.0494s) |
- 1.94 - (0.00117s) |
-
(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn) |
- 15.6 - (0.0106s) |
- 46.6 - (0.0319s) |
- 2.72 - (0.00186s) |
- 1 - (0.000684s) |
- 311 - (0.213s) |
- 1.72 - (0.00117s) |
-
For each of the following regular expressions the time taken to find all - occurrences of the expression within the C++ source file - boost/crc.hpp was measured.
-Expression | -GRETA | -GRETA - (non-recursive mode) |
- Boost | -Boost + C++ locale | -POSIX | -PCRE | -
^(template[[:space:]]*<[^;:{]+>[[:space:]]*)?(class|struct)[[:space:]]*(\<\w+\>([
- ]*\([^)]*\))?[[:space:]]*)*(\<\w*\>)[[:space:]]*(<[^;:{]+>[[:space:]]*)?(\{|:[^;\{()]*\{) |
- 8.88 - (0.000792s) |
- 46.4 - (0.00414s) |
- 1.19 - (0.000106s) |
- 1 - (8.92e-005s) |
- 688 - (0.0614s) |
- 3.23 - (0.000288s) |
-
(^[
- ]*#(?:[^\\\n]|\\[^\n_[:punct:][:alnum:]]*[\n[:punct:][:word:]])*)|(//[^\n]*|/\*.*?\*/)|\<([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\>|('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|\<(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\> |
- 1 - (0.00571s) |
- 5.31 - (0.0303s) |
- 2.47 - (0.0141s) |
- 1.92 - (0.011s) |
- NA | -3.29 - (0.0188s) |
-
^[ ]*#[ ]*include[ ]+("[^"]+"|<[^>]+>) |
- 5.78 - (0.00172s) |
- 26.3 - (0.00783s) |
- 1.12 - (0.000333s) |
- 1 - (0.000298s) |
- 128 - (0.0382s) |
- 1.74 - (0.000518s) |
-
^[ ]*#[ ]*include[ ]+("boost/[^"]+"|<boost/[^>]+>) |
- 10.2 - (0.00305s) |
- 28.4 - (0.00845s) |
- 1.12 - (0.000333s) |
- 1 - (0.000298s) |
- 155 - (0.0463s) |
- 1.74 - (0.000519s) |
-
Expression | +GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
Twain |
+ 1 + (9.05e-005s) |
+ 1.03 + (9.29e-005s) |
+ 4.92 + (0.000445s) |
+ 4.92 + (0.000445s) |
+ 43.2 + (0.00391s) |
+ 3.18 + (0.000288s) |
+
Huck[[:alpha:]]+ |
+ 1 + (8.56e-005s) |
+ 1 + (8.56e-005s) |
+ 4.97 + (0.000425s) |
+ 4.98 + (0.000426s) |
+ 2.8 + (0.000239s) |
+ 2.2 + (0.000188s) |
+
[[:alpha:]]+ing |
+ 5.29 + (0.011s) |
+ 11.8 + (0.0244s) |
+ 1.19 + (0.00246s) |
+ 1 + (0.00207s) |
+ 8.77 + (0.0182s) |
+ 6.88 + (0.0142s) |
+
^[^ ]*?Twain |
+ 5.98 + (0.00462s) |
+ 20.2 + (0.0156s) |
+ 1.54 + (0.00119s) |
+ 1 + (0.000772s) |
+ NA | +2.53 + (0.00195s) |
+
Tom|Sawyer|Huckleberry|Finn |
+ 3.42 + (0.00207s) |
+ 6.31 + (0.00383s) |
+ 1.71 + (0.00104s) |
+ 1 + (0.000606s) |
+ 81.5 + (0.0494s) |
+ 1.96 + (0.00119s) |
+
(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn) |
+ 1.97 + (0.00266s) |
+ 3.77 + (0.00509s) |
+ 1.38 + (0.00186s) |
+ 1 + (0.00135s) |
+ 297 + (0.401s) |
+ 1.77 + (0.00238s) |
+
For each of the following regular expressions the time taken to find all + occurrences of the expression within the C++ source file + boost/crc.hpp was measured.
+Expression | +GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
^(template[[:space:]]*<[^;:{]+>[[:space:]]*)?(class|struct)[[:space:]]*(\<\w+\>([
+ ]*\([^)]*\))?[[:space:]]*)*(\<\w*\>)[[:space:]]*(<[^;:{]+>[[:space:]]*)?(\{|:[^;\{()]*\{) |
+ 6.67 + (0.00147s) |
+ 36.9 + (0.00813s) |
+ 1.03 + (0.000227s) |
+ 1 + (0.00022s) |
+ 557 + (0.123s) |
+ 2.57 + (0.000566s) |
+
(^[
+ ]*#(?:[^\\\n]|\\[^\n_[:punct:][:alnum:]]*[\n[:punct:][:word:]])*)|(//[^\n]*|/\*.*?\*/)|\<([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\>|('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|\<(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\> |
+ 1 + (0.00555s) |
+ 3.32 + (0.0185s) |
+ 2.53 + (0.0141s) |
+ 1.94 + (0.0108s) |
+ NA | +3.38 + (0.0188s) |
+
^[ ]*#[ ]*include[ ]+("[^"]+"|<[^>]+>) |
+ 4.77 + (0.00156s) |
+ 24.8 + (0.00814s) |
+ 1.13 + (0.000372s) |
+ 1 + (0.000328s) |
+ 120 + (0.0394s) |
+ 1.58 + (0.000518s) |
+
^[ ]*#[ ]*include[ ]+("boost/[^"]+"|<boost/[^>]+>) |
+ 4.72 + (0.00154s) |
+ 24.8 + (0.00813s) |
+ 1.12 + (0.000367s) |
+ 1 + (0.000328s) |
+ 143 + (0.0469s) |
+ 1.58 + (0.000518s) |
+
For each of the following regular expressions the time taken to find all - occurrences of the expression within the html file libs/libraries.htm - was measured.
-Expression | -GRETA | -GRETA - (non-recursive mode) |
- Boost | -Boost + C++ locale | -POSIX | -PCRE | -
beman|john|dave |
- 11 - (0.00297s) |
- 34.3 - (0.00922s) |
- 1.78 - (0.000479s) |
- 1 - (0.000269s) |
- 55.2 - (0.0149s) |
- 1.85 - (0.000499s) |
-
<p>.*?</p> |
- 5.38 - (0.00145s) |
- 21.8 - (0.00587s) |
- 1.02 - (0.000274s) |
- 1 - (0.000269s) |
- NA | -1.05 - (0.000283s) |
-
<a[^>]+href=("[^"]*"|[^[:space:]]+)[^>]*> |
- 4.51 - (0.00207s) |
- 12.6 - (0.00579s) |
- 1.34 - (0.000616s) |
- 1 - (0.000459s) |
- 343 - (0.158s) |
- 1.09 - (0.000499s) |
-
<h[12345678][^>]*>.*?</h[12345678]> |
- 7.39 - (0.00143s) |
- 29.6 - (0.00571s) |
- 1.87 - (0.000362s) |
- 1 - (0.000193s) |
- NA | -1.27 - (0.000245s) |
-
<img[^>]+src=("[^"]*"|[^[:space:]]+)[^>]*> |
- 6.73 - (0.00145s) |
- 27.3 - (0.00587s) |
- 1.2 - (0.000259s) |
- 1.32 - (0.000283s) |
- 148 - (0.0319s) |
- 1 - (0.000215s) |
-
<font[^>]+face=("[^"]*"|[^[:space:]]+)[^>]*>.*?</font> |
- 6.93 - (0.00153s) |
- 27 - (0.00595s) |
- 1.22 - (0.000269s) |
- 1.31 - (0.000289s) |
- NA | -1 - (0.00022s) |
-
For each of the following regular expressions the time taken to match against +
For each of the following regular expressions the time taken to find all + occurrences of the expression within the html file libs/libraries.htm + was measured.
+Expression | +GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
beman|john|dave |
+ 4.07 + (0.00111s) |
+ 7.14 + (0.00195s) |
+ 1.75 + (0.000479s) |
+ 1 + (0.000273s) |
+ 54.3 + (0.0149s) |
+ 1.83 + (0.000499s) |
+
<p>.*?</p> |
+ 1 + (6.59e-005s) |
+ 1.04 + (6.84e-005s) |
+ 4.15 + (0.000273s) |
+ 4.23 + (0.000279s) |
+ NA | +4.23 + (0.000279s) |
+
<a[^>]+href=("[^"]*"|[^[:space:]]+)[^>]*> |
+ 1.39 + (0.000626s) |
+ 1.83 + (0.000821s) |
+ 1.41 + (0.000636s) |
+ 1 + (0.00045s) |
+ 351 + (0.158s) |
+ 1.13 + (0.000509s) |
+
<h[12345678][^>]*>.*?</h[12345678]> |
+ 1 + (0.000142s) |
+ 1.21 + (0.000171s) |
+ 2.62 + (0.000372s) |
+ 1.48 + (0.00021s) |
+ NA | +1.73 + (0.000245s) |
+
<img[^>]+src=("[^"]*"|[^[:space:]]+)[^>]*> |
+ 1 + (5.38e-005s) |
+ 1.05 + (5.63e-005s) |
+ 5 + (0.000269s) |
+ 5.18 + (0.000278s) |
+ 604 + (0.0325s) |
+ 4.05 + (0.000218s) |
+
<font[^>]+face=("[^"]*"|[^[:space:]]+)[^>]*>.*?</font> |
+ 1 + (6.05e-005s) |
+ 1.09 + (6.59e-005s) |
+ 4.45 + (0.000269s) |
+ 4.69 + (0.000284s) |
+ NA | +3.64 + (0.00022s) |
+
+ For each of the following regular expressions the time taken to match against the text indicated was measured.
-Expression | -Text | -GRETA | -GRETA - (non-recursive mode) |
- Boost | -Boost + C++ locale | -POSIX | -PCRE | -
abc |
- abc | -1.31 - (2.2e-007s) |
- 1.94 - (3.25e-007s) |
- 1.26 - (2.1e-007s) |
- 1.24 - (2.08e-007s) |
- 3.03 - (5.06e-007s) |
- 1 - (1.67e-007s) |
-
^([0-9]+)(\-| |$)(.*)$ |
- 100- this is a line of ftp response which contains a message string | -1.52 - (6.88e-007s) |
- 2.28 - (1.03e-006s) |
- 1.5 - (6.78e-007s) |
- 1.5 - (6.78e-007s) |
- 329 - (0.000149s) |
- 1 - (4.53e-007s) |
-
([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4} |
- 1234-5678-1234-456 | -2.04 - (1.03e-006s) |
- 2.83 - (1.43e-006s) |
- 2.12 - (1.07e-006s) |
- 2.04 - (1.03e-006s) |
- 30.8 - (1.56e-005s) |
- 1 - (5.05e-007s) |
-
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
- john_maddock@compuserve.com | -1.48 - (1.78e-006s) |
- 2.1 - (2.52e-006s) |
- 1.35 - (1.62e-006s) |
- 1.32 - (1.59e-006s) |
- 165 - (0.000198s) |
- 1 - (1.2e-006s) |
-
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
- foo12@foo.edu | -1.28 - (1.41e-006s) |
- 1.9 - (2.1e-006s) |
- 1.42 - (1.57e-006s) |
- 1.38 - (1.53e-006s) |
- 107 - (0.000119s) |
- 1 - (1.11e-006s) |
-
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
- bob.smith@foo.tv | -1.29 - (1.43e-006s) |
- 1.9 - (2.1e-006s) |
- 1.42 - (1.57e-006s) |
- 1.38 - (1.53e-006s) |
- 119 - (0.000132s) |
- 1 - (1.11e-006s) |
-
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
- EH10 2QQ | -1.26 - (4.63e-007s) |
- 1.77 - (6.49e-007s) |
- 1.3 - (4.77e-007s) |
- 1.2 - (4.4e-007s) |
- 9.15 - (3.36e-006s) |
- 1 - (3.68e-007s) |
-
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
- G1 1AA | -1.06 - (4.73e-007s) |
- 1.59 - (7.07e-007s) |
- 1.05 - (4.68e-007s) |
- 1 - (4.44e-007s) |
- 12.9 - (5.73e-006s) |
- 1.63 - (7.26e-007s) |
-
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
- SW1 1ZZ | -1.26 - (9.17e-007s) |
- 1.84 - (1.34e-006s) |
- 1.28 - (9.26e-007s) |
- 1.21 - (8.78e-007s) |
- 8.42 - (6.11e-006s) |
- 1 - (7.26e-007s) |
-
^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$ |
- 4/1/2001 | -1.57 - (9.73e-007s) |
- 2.28 - (1.41e-006s) |
- 1.25 - (7.73e-007s) |
- 1.26 - (7.83e-007s) |
- 11.2 - (6.95e-006s) |
- 1 - (6.21e-007s) |
-
^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$ |
- 12/12/2001 | -1.52 - (9.56e-007s) |
- 2.06 - (1.3e-006s) |
- 1.29 - (8.12e-007s) |
- 1.24 - (7.83e-007s) |
- 12.4 - (7.8e-006s) |
- 1 - (6.3e-007s) |
-
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
- 123 | -2.11 - (7.35e-007s) |
- 3.18 - (1.11e-006s) |
- 2.5 - (8.7e-007s) |
- 2.44 - (8.5e-007s) |
- 5.26 - (1.83e-006s) |
- 1 - (3.49e-007s) |
-
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
- +3.14159 | -1.31 - (4.96e-007s) |
- 1.92 - (7.26e-007s) |
- 1.26 - (4.77e-007s) |
- 1.2 - (4.53e-007s) |
- 9.71 - (3.66e-006s) |
- 1 - (3.77e-007s) |
-
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
- -3.14159 | -1.32 - (4.97e-007s) |
- 1.92 - (7.26e-007s) |
- 1.24 - (4.67e-007s) |
- 1.2 - (4.53e-007s) |
- 9.7 - (3.66e-006s) |
- 1 - (3.78e-007s) |
-
Expression | +Text | +GRETA | +GRETA + (non-recursive mode) |
+ Boost | +Boost + C++ locale | +POSIX | +PCRE | +
abc |
+ abc | +1.32 + (2.24e-007s) |
+ 1.86 + (3.15e-007s) |
+ 1.25 + (2.12e-007s) |
+ 1.24 + (2.1e-007s) |
+ 2.98 + (5.05e-007s) |
+ 1 + (1.7e-007s) |
+
^([0-9]+)(\-| |$)(.*)$ |
+ 100- this is a line of ftp response which contains a message string | +1.32 + (5.91e-007s) |
+ 1.96 + (8.78e-007s) |
+ 2.68 + (1.2e-006s) |
+ 1.53 + (6.88e-007s) |
+ 332 + (0.000149s) |
+ 1 + (4.49e-007s) |
+
([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4} |
+ 1234-5678-1234-456 | +1.44 + (7.16e-007s) |
+ 2.04 + (1.01e-006s) |
+ 3.35 + (1.66e-006s) |
+ 2.15 + (1.07e-006s) |
+ 31.4 + (1.56e-005s) |
+ 1 + (4.96e-007s) |
+
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
+ john_maddock@compuserve.com | +1 + (1.18e-006s) |
+ 1.42 + (1.68e-006s) |
+ 2.06 + (2.44e-006s) |
+ 1.35 + (1.6e-006s) |
+ 165 + (0.000196s) |
+ 1.06 + (1.26e-006s) |
+
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
+ foo12@foo.edu | +1 + (1.09e-006s) |
+ 1.44 + (1.57e-006s) |
+ 2.21 + (2.4e-006s) |
+ 1.41 + (1.53e-006s) |
+ 108 + (0.000117s) |
+ 1.04 + (1.13e-006s) |
+
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ |
+ bob.smith@foo.tv | +1 + (1.07e-006s) |
+ 1.43 + (1.53e-006s) |
+ 2.21 + (2.37e-006s) |
+ 1.45 + (1.55e-006s) |
+ 123 + (0.000132s) |
+ 1.05 + (1.13e-006s) |
+
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
+ EH10 2QQ | +1 + (3.19e-007s) |
+ 1.67 + (5.34e-007s) |
+ 1.58 + (5.05e-007s) |
+ 1.4 + (4.49e-007s) |
+ 10.4 + (3.32e-006s) |
+ 1.15 + (3.68e-007s) |
+
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
+ G1 1AA | +1 + (3.29e-007s) |
+ 1.65 + (5.44e-007s) |
+ 1.51 + (4.96e-007s) |
+ 1.36 + (4.49e-007s) |
+ 8.46 + (2.79e-006s) |
+ 1.1 + (3.63e-007s) |
+
^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$ |
+ SW1 1ZZ | +1 + (3.25e-007s) |
+ 1.64 + (5.34e-007s) |
+ 1.56 + (5.05e-007s) |
+ 1.38 + (4.49e-007s) |
+ 9.29 + (3.02e-006s) |
+ 1.13 + (3.68e-007s) |
+
^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$ |
+ 4/1/2001 | +1 + (3.44e-007s) |
+ 1.55 + (5.34e-007s) |
+ 2.36 + (8.12e-007s) |
+ 2.2 + (7.55e-007s) |
+ 19.6 + (6.72e-006s) |
+ 1.81 + (6.21e-007s) |
+
^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$ |
+ 12/12/2001 | +1.05 + (6.59e-007s) |
+ 1.66 + (1.05e-006s) |
+ 1.44 + (9.07e-007s) |
+ 1.23 + (7.73e-007s) |
+ 11.6 + (7.34e-006s) |
+ 1 + (6.3e-007s) |
+
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
+ 123 | +1 + (5.72e-007s) |
+ 1.59 + (9.07e-007s) |
+ 1.6 + (9.16e-007s) |
+ 1.49 + (8.5e-007s) |
+ 6.14 + (3.51e-006s) |
+ 1.22 + (6.97e-007s) |
+
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
+ +3.14159 | +1 + (6.78e-007s) |
+ 1.52 + (1.03e-006s) |
+ 1.47 + (9.94e-007s) |
+ 1.31 + (8.88e-007s) |
+ 10.8 + (7.34e-006s) |
+ 1.08 + (7.35e-007s) |
+
^[-+]?[[:digit:]]*\.?[[:digit:]]*$ |
+ -3.14159 | +1 + (6.78e-007s) |
+ 1.52 + (1.03e-006s) |
+ 1.46 + (9.92e-007s) |
+ 1.32 + (8.98e-007s) |
+ 10.5 + (7.11e-006s) |
+ 1.11 + (7.54e-007s) |
+
Copyright John Maddock April 2003, all rights reserved.