summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorBurdette Lamar <BurdetteLamar@Yahoo.com>2025-09-12 08:30:50 -0500
committerGitHub <noreply@github.com>2025-09-12 09:30:50 -0400
commit95ae42cea1df8015876d185387091a4fb617b82d (patch)
treecf5763c214982e555623507354fe749528f6dc12 /string.c
parentfbeeb89b3d442d3be27544b058cc9d5b5dc4accc (diff)
[DOC] Tweaks for String#match (#14476)
Diffstat (limited to 'string.c')
-rw-r--r--string.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/string.c b/string.c
index ca5d837252..8d27248020 100644
--- a/string.c
+++ b/string.c
@@ -5070,34 +5070,36 @@ static VALUE get_pat(VALUE);
* match(pattern, offset = 0) -> matchdata or nil
* match(pattern, offset = 0) {|matchdata| ... } -> object
*
- * Returns a MatchData object (or +nil+) based on +self+ and the given +pattern+.
- *
- * Note: also updates Regexp@Global+Variables.
+ * Creates a MatchData object based on +self+ and the given arguments;
+ * updates {Regexp Global Variables}[rdoc-ref:Regexp@Global+Variables].
*
* - Computes +regexp+ by converting +pattern+ (if not already a Regexp).
+ *
* regexp = Regexp.new(pattern)
+ *
* - Computes +matchdata+, which will be either a MatchData object or +nil+
* (see Regexp#match):
- * matchdata = regexp.match(self)
- *
- * With no block given, returns the computed +matchdata+:
*
- * 'foo'.match('f') # => #<MatchData "f">
- * 'foo'.match('o') # => #<MatchData "o">
- * 'foo'.match('x') # => nil
+ * matchdata = regexp.match(self[offset..])
*
- * If Integer argument +offset+ is given, the search begins at index +offset+:
+ * With no block given, returns the computed +matchdata+ or +nil+:
*
+ * 'foo'.match('f') # => #<MatchData "f">
+ * 'foo'.match('o') # => #<MatchData "o">
+ * 'foo'.match('x') # => nil
* 'foo'.match('f', 1) # => nil
* 'foo'.match('o', 1) # => #<MatchData "o">
*
- * With a block given, calls the block with the computed +matchdata+
- * and returns the block's return value:
+ * With a block given and computed +matchdata+ non-nil, calls the block with +matchdata+;
+ * returns the block's return value:
*
* 'foo'.match(/o/) {|matchdata| matchdata } # => #<MatchData "o">
- * 'foo'.match(/x/) {|matchdata| matchdata } # => nil
- * 'foo'.match(/f/, 1) {|matchdata| matchdata } # => nil
*
+ * With a block given and +nil+ +matchdata+, does not call the block:
+ *
+ * 'foo'.match(/x/) {|matchdata| fail 'Cannot happen' } # => nil
+ *
+ * Related: see {Querying}[rdoc-ref:String@Querying].
*/
static VALUE