2016-11-17 178 views
0

我試圖建立一個正則表達式來檢測包含字母數字字符和特殊字符的字符串,但是對於我沒有找到正確的方法來做它。這裏是我的代碼:Swift:檢測非字母數字字符的正則表達式

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

     str = "itwork.yes" 
} 

任何的你知道我怎麼能建立我的正則表達式來檢測非字母數字字符?

我真的很感謝你的幫助。

回答

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

+0

你如何檢測子串的長度? – user2924482

+0

@ user2924482當你只想知道,如果字符串包含任何這些字符,檢查!= nil就足夠了,否則你不能使用這個方法,因爲長度總是一個!它只搜索單個字符,您指定的集合包含該字符 – borchero

相關問題