【发布时间】:2015-05-28 20:12:26
【问题描述】:
我想在字符串中搜索子字符串,但允许使用不同但相似的标点符号(包括空格)。
例如,如果我有字符串
@"this is a 'difficult' string to search"
然后我搜索子字符串
@"a ‘difficult‘ string"
目前找不到,因为子字符串使用了不同类型的单引号。
有没有一种搜索方式可以允许这样的细微变化?还是我必须自己写?如果我必须按照自己的方式编写,我该怎么做?
显然还有很多其他的可能性我想介绍,有很多类型:
双引号(例如 U+0022、U+201C、U+201D)
单引号(U+0027、U+2018、U+2019)
破折号(U+002D、U+2010、U+2011、U+2012、U+2013、U+2014、U+2015(等))
空格(U+0020、U+00A0(等))
等
那么我该怎么做呢
[myString rangeOfString:subString options:allowForSimilarPunctuation]
到目前为止,我一直在通过替换字符组合和重复搜索来更改字符串和子字符串,但这似乎是一种笨拙的方式,必须有一个聪明的方法吗?
【问题讨论】:
-
我会删除所有非字母数字字符和非空格的两个字符串。然后进行比较。
-
是的,我打算在问题中说明我已经尝试过,但是当标点符号不是很相似时,这种方法也会给出肯定的匹配。我希望它比这更准确。我想我可以用“普通”空格替换所有空格,用一种类型的双引号等替换所有双引号。这会起作用,但看起来有点笨拙,我想知道如何“正确”做
标签: ios objective-c regex nsstring string-comparison