一尘不染

Swift正则表达式:字符串与模式匹配吗?

swift

在Swift中,查看字符串是否与模式匹配的简单方法是什么?

伪代码示例:

if string matches pattern ...

if string =~ pattern ...

(我已阅读斯威夫特文档并没有看到一个正则表达式的能力。我读过有关增加一个新的=~运营商是一个好主意,但不是我想,因为这是一个教学项目。我已经尝试了更复杂的rangeOfString,但收到错误:“字符串”没有成员“
rangeOfString”。我正在寻找一种Swift解决方案,即未键入NSRegularExpression。我不需要对匹配结果数据做任何事情。)


阅读 248

收藏
2020-07-07

共1个答案

一尘不染

Swift 3版本解决方案:

if string.range(of: regex, options: .regularExpression, range: nil, locale: nil) != nil ...

Swift版本2解决方案:

if string.rangeOfString(pattern, options: .RegularExpressionSearch) != nil ...

示例-此字符串是否包含两个字母“ o”字符?

"hello world".rangeOfString("o.*o", options: .RegularExpressionSearch) != nil

注意:如果收到错误消息'String' does not have a member 'rangeOfString',则在此之前添加:import Foundation。这是因为Foundation提供了NSString方法,这些方法自动桥接到Swift String类。

import Foundation

感谢Onno Eberhard的Swift 3更新。

2020-07-07