diff options
author | Nobuyoshi Nakada <[email protected]> | 2021-02-11 22:20:41 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-02-11 22:20:41 +0900 |
commit | f3f78f96548e10e76784b2b45771b41dd358afd2 (patch) | |
tree | 076b56f99936cf2db335423987c0969decfa9877 /doc | |
parent | 8544f51ef70b6b34aa6c81f5b52a4f05da464609 (diff) |
[DOC] Improved regexp.rdoc [ci skip]
* Sub-sectioned "Repetition" section
* Added examples of "Possessive match"
Diffstat (limited to 'doc')
-rw-r--r-- | doc/regexp.rdoc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/doc/regexp.rdoc b/doc/regexp.rdoc index d84cae1771..e25f10fc66 100644 --- a/doc/regexp.rdoc +++ b/doc/regexp.rdoc @@ -190,6 +190,8 @@ At least one uppercase character ('H'), at least one lowercase character "Hello".match(/[[:upper:]]+[[:lower:]]+l{2}o/) #=> #<MatchData "Hello"> +=== Greedy match + Repetition is <i>greedy</i> by default: as many occurrences as possible are matched while still allowing the overall match to succeed. By contrast, <i>lazy</i> matching makes the minimal amount of matches @@ -206,11 +208,17 @@ Both patterns below match the string. The first uses a greedy quantifier so /<.+>/.match("<a><b>") #=> #<MatchData "<a><b>"> /<.+?>/.match("<a><b>") #=> #<MatchData "<a>"> +=== Possessive match + A quantifier followed by <tt>+</tt> matches <i>possessively</i>: once it has matched it does not backtrack. They behave like greedy quantifiers, but having matched they refuse to "give up" their match even if this jeopardises the overall match. + /<.*><.+>/.match("<a><b>") #=> #<MatchData "<a><b>"> + /<.*+><.+>/.match("<a><b>") #=> nil + /<.*><.++>/.match("<a><b>") #=> nil + == Capturing Parentheses can be used for <i>capturing</i>. The text enclosed by the @@ -230,6 +238,8 @@ available with its #[] method: /[csh](..) [csh]\1 in/.match("The cat sat in the hat")[1] #=> 'at' +=== Named captures + Capture groups can be referred to by name when defined with the <tt>(?<</tt><i>name</i><tt>>)</tt> or <tt>(?'</tt><i>name</i><tt>')</tt> constructs. |