range(of:options:range:locale:)
Finds and returns the range of the first occurrence of a given string within a given range of the string, subject to given options, using the specified locale, if any.
Declaration
func range(of searchString: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToSearch: NSRange, locale: Locale?) -> NSRangeParameters
- searchString:
The string for which to search.
- mask:
A mask specifying search options. The following options may be specified by combining them with the C bitwise
ORoperator:NSCaseInsensitiveSearch,NSLiteralSearch,NSBackwardsSearch, andNSAnchoredSearch. See 10000035i for details on these options. - rangeOfReceiverToSearch:
The range within the receiver for which to search for
aString.Raises an Rangeexception if
aRangeis invalid. - locale:
The locale to use when comparing the receiver with
aString. To use the current locale, pass [Nslocale Current]. To use the system locale, passnil.The locale argument affects the equality checking algorithm. For example, for the Turkish locale, case-insensitive compare matches “I” to “ı” (
U+0131 LATIN SMALL DOTLESS I), not the normal “i” character.
Return Value
An NSRange structure giving the location and length in the receiver of aString within aRange in the receiver, modulo the options in mask. The range returned is relative to the start of the string, not to the passed-in range. Returns {``NSNotFound``, 0} if aString is not found or is empty ("").
Discussion
NSString objects are compared by checking the Unicode canonical equivalence of their code point sequences. The length of the returned range and that of aString may differ if equivalent composed character sequences are matched.
Special Considerations
This method detects all invalid ranges (including those with negative lengths). For applications linked against macOS 10.6 and later, this error causes an exception; for applications linked against earlier releases, this error causes a warning, which is displayed just once per application execution.
See Also
Finding Characters and Substrings
contains(_:)localizedCaseInsensitiveContains(_:)localizedStandardContains(_:)rangeOfCharacter(from:)rangeOfCharacter(from:options:)rangeOfCharacter(from:options:range:)range(of:)range(of:options:)range(of:options:range:)localizedStandardRange(of:)enumerateLines(_:)enumerateSubstrings(in:options:using:)