【发布时间】:2014-11-11 08:41:27
【问题描述】:
我的方法目前检查数组中是否存在子字符串,但我想知道是否有办法让它也可以处理标点符号和数字。假设我有一个数组:
@[@"apple", @"!!", @"apps!", @"banana"];
我的子字符串是@"!",我希望它吐出:@"!!",和@"apps!"
或者另一个例子:
@[@"apple", @"6:30", @"6 Pizzas", @"26"];
我的子字符串是@"6",我希望它吐出:@"6:30"、@"6"、@"6 Pizzas"
有没有办法使用NSRange substringRange = [wordsArray rangeOfString:currentWord];来做到这一点
目前无法识别标点符号。 :/
【问题讨论】:
-
你试过什么?你检查过正则表达式吗?我不知道您是否可以将正则表达式输入 rangeOfString 但您可以遍历列表并使用简单的正则表达式
/\W/g对任何非单词字符进行测试,或者基本上使用您想要匹配的/6/g -
所以现在我有一个 if、else if、else if 语句来组织我的输出(首先是准确的单词,然后是子字符串开头的单词,最后是子字符串是否存在)。这适用于字母字符和数字。如果子字符串与标点字符集中的字符串匹配,我正在考虑添加另一个 else,将其添加到我的建议数组中,但我不确定这是否是最好的方法。
-
哈!实际上我想通了,所以我正在做的是使用
enumerateSubstringsInRange块传递当前单词,而我使用NSStringEnumerationByWords会自动忽略非字母数字值。
标签: objective-c nsstring ios8 substring nsrange