Swift:用于检测非字母数字字符的正则表达式

时间:2016-11-17 18:04:44

标签: ios regex swift nsregularexpression

我正在尝试构建一个正则表达式来检测包含字母数字字符和特殊字符的字符串,但是因为我还没找到正确的操作方法。这是我的代码:

var str = "asda~dd.ASD98ASD09ASD098ASD098ADS908"
let myRegEx = "^[a-z]{7}\\.[A-Z0-9]{28}$"
if (str.rangeOfString(myRegEx,options: .RegularExpressionSearch) != nil) {

         str = "itwork.yes"   
}

你们中的任何人都知道如何构建我的正则表达式来检测非字母数字字符?

我真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

如何使用rangeOfCharacter

// Choose character set and add all characters that you want to check for besides the alphanumeric characters
let set = CharacterSet.alphanumerics.union(CharacterSet(charactersIn: ".\\"))

// Check for the range of the characters in the string
let range = str.rangeOfCharacter(from: set, options: .regularExpression)

这可能是最干净的方式之一。

编辑:

如果您只想检测非字母数字字符,请在调用范围函数时使用set.inverse而不是简单set