diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-09-24 13:48:37 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-09-24 13:48:37 (GMT) |
commit | 6f3388528ef453d29fbddba3f5a054d2f5268207 (patch) | |
tree | 51b638cc0fe1a9d9ca7a4590d9eb8d38b6f79307 /doc/re_syntax.n | |
parent | bf1e2150cc603698bc042d0552c49930e86b2ca9 (diff) | |
parent | f9465250b939d54021e85ba03eaf63f31b4b3037 (diff) | |
download | tcl-6f3388528ef453d29fbddba3f5a054d2f5268207.zip tcl-6f3388528ef453d29fbddba3f5a054d2f5268207.tar.gz tcl-6f3388528ef453d29fbddba3f5a054d2f5268207.tar.bz2 |
merge trunk
Diffstat (limited to 'doc/re_syntax.n')
-rw-r--r-- | doc/re_syntax.n | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/doc/re_syntax.n b/doc/re_syntax.n index 46a180d..7988071 100644 --- a/doc/re_syntax.n +++ b/doc/re_syntax.n @@ -683,9 +683,33 @@ earlier in the RE taking priority over ones starting later. Note that outer subexpressions thus take priority over their component subexpressions. .PP -Note that the quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to +The quantifiers \fB{1,1}\fR and \fB{1,1}?\fR can be used to force longest and shortest preference, respectively, on a subexpression or a whole RE. +.RS +.PP +\fBNOTE:\fR This means that you can usually make a RE be non-greedy overall by +putting \fB{1,1}?\fR after one of the first non-constraint atoms or +parenthesized sub-expressions in it. \fIIt pays to experiment\fR with the +placing of this non-greediness override on a suitable range of input texts +when you are writing a RE if you are using this level of complexity. +.PP +For example, this regular expression is non-greedy, and will match the +shortest substring possible given that +.QW \fBabc\fR +will be matched as early as possible (the quantifier does not change that): +.PP +.CS +ab{1,1}?c.*x.*cba +.CE +.PP +The atom +.QW \fBa\fR +has no greediness preference, we explicitly give one for +.QW \fBb\fR , +and the remaining quantifiers are overridden to be non-greedy by the preceding +non-greedy quantifier. +.RE .PP Match lengths are measured in characters, not collating elements. An empty string is considered longer than no match at all. For example, |