---
title: "rangeOfCharacter(from:options:range:)"
framework: foundation
role: symbol
role_heading: Instance Method
path: "foundation/nsstring/rangeofcharacter(from:options:range:)"
---

# rangeOfCharacter(from:options:range:)

Finds and returns the range in the string of the first character from a given character set found in a given range with given options.

## Declaration

```swift
func rangeOfCharacter(from searchSet: CharacterSet, options mask: NSString.CompareOptions = [], range rangeOfReceiverToSearch: NSRange) -> NSRange
```

## Parameters

- `searchSet`: A character set. This value must not be nil. Raises an NSInvalidArgumentException if aSet is nil.
- `mask`: A mask specifying search options. The following options may be specified by combining them with the C bitwise OR operator: doc://com.apple.foundation/documentation/Foundation/NSString/CompareOptions/anchored, doc://com.apple.foundation/documentation/Foundation/NSString/CompareOptions/backwards.
- `rangeOfReceiverToSearch`: The range in which to search. aRange must not exceed the bounds of the receiver. Raises an doc://com.apple.foundation/documentation/Foundation/NSExceptionName/rangeException if aRange is invalid.

## Return Value

Return Value The range in the receiver of the first character found from aSet within aRange. Returns a range of {``NSNotFound``, 0} if none of the characters in aSet are found.

## Discussion

Discussion This method does not perform any Unicode normalization on the receiver, so canonically equivalent forms will not be matched. For example, searching the string “strüdel”—containing the decomposed characters “u” (U+0075 LATIN SMALL LETTER U) and “¨” (U+0308 COMBINING DIAERESIS)—with a character set containing the precomposed character “ü” (U+00FC LATIN SMALL LETTER U WITH DIAERESIS) would return the range {``NSNotFound``, 0}, because none of the characters in the set are found.

## See Also

### Finding Characters and Substrings

- [contains(_:)](foundation/nsstring/contains(_:).md)
- [localizedCaseInsensitiveContains(_:)](foundation/nsstring/localizedcaseinsensitivecontains(_:).md)
- [localizedStandardContains(_:)](foundation/nsstring/localizedstandardcontains(_:).md)
- [rangeOfCharacter(from:)](foundation/nsstring/rangeofcharacter(from:).md)
- [rangeOfCharacter(from:options:)](foundation/nsstring/rangeofcharacter(from:options:).md)
- [range(of:)](foundation/nsstring/range(of:).md)
- [range(of:options:)](foundation/nsstring/range(of:options:).md)
- [range(of:options:range:)](foundation/nsstring/range(of:options:range:).md)
- [range(of:options:range:locale:)](foundation/nsstring/range(of:options:range:locale:).md)
- [localizedStandardRange(of:)](foundation/nsstring/localizedstandardrange(of:).md)
- [enumerateLines(_:)](foundation/nsstring/enumeratelines(_:).md)
- [enumerateSubstrings(in:options:using:)](foundation/nsstring/enumeratesubstrings(in:options:using:).md)
