mirror of
https://github.com/ruby/ruby.git
synced 2026-01-26 20:19:19 +00:00
48 lines
1.8 KiB
Plaintext
48 lines
1.8 KiB
Plaintext
Returns a 3-element array of substrings of +self+.
|
|
|
|
Searches +self+ for a match of +pattern+, seeking the _last_ match.
|
|
|
|
If +pattern+ is not matched, returns the array:
|
|
|
|
["", "", self.dup]
|
|
|
|
If +pattern+ is matched, returns the array:
|
|
|
|
[pre_match, last_match, post_match]
|
|
|
|
where:
|
|
|
|
- +last_match+ is the last-found matching substring.
|
|
- +pre_match+ and +post_match+ are the preceding and following substrings.
|
|
|
|
The pattern used is:
|
|
|
|
- +pattern+ itself, if it is a Regexp.
|
|
- <tt>Regexp.quote(pattern)</tt>, if +pattern+ is a string.
|
|
|
|
Note that in the examples below, a returned string <tt>'hello'</tt> is a copy of +self+, not +self+.
|
|
|
|
If +pattern+ is a Regexp, searches for the last matching substring
|
|
(also setting {matched-data global variables}[rdoc-ref:language/globals.md@Matched+Data]):
|
|
|
|
'hello'.rpartition(/l/) # => ["hel", "l", "o"]
|
|
'hello'.rpartition(/ll/) # => ["he", "ll", "o"]
|
|
'hello'.rpartition(/h/) # => ["", "h", "ello"]
|
|
'hello'.rpartition(/o/) # => ["hell", "o", ""]
|
|
'hello'.rpartition(//) # => ["hello", "", ""]
|
|
'hello'.rpartition(/x/) # => ["", "", "hello"]
|
|
'こんにちは'.rpartition(/に/) # => ["こん", "に", "ちは"]
|
|
|
|
If +pattern+ is not a Regexp, converts it to a string (if it is not already one),
|
|
then searches for the last matching substring
|
|
(and does _not_ set {matched-data global variables}[rdoc-ref:language/globals.md@Matched+Data]):
|
|
|
|
'hello'.rpartition('l') # => ["hel", "l", "o"]
|
|
'hello'.rpartition('ll') # => ["he", "ll", "o"]
|
|
'hello'.rpartition('h') # => ["", "h", "ello"]
|
|
'hello'.rpartition('o') # => ["hell", "o", ""]
|
|
'hello'.rpartition('') # => ["hello", "", ""]
|
|
'こんにちは'.rpartition('に') # => ["こん", "に", "ちは"]
|
|
|
|
Related: see {Converting to Non-String}[rdoc-ref:String@Converting+to+Non--5CString].
|