我想在字符串中搜索子字符串,但允许使用不同但相似的标点字符(包括空格)。
例如,如果我有字符串
@"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]
到目前为止,我一直在通过替换字符组合和重复搜索来改变字符串和子字符串,但这似乎是一种笨拙的方式,必须有一个聪明的方法来做到这一点?
答案 0 :(得分:1)
您可以使用字符类:
@"a [‘']difficult[‘'] string"
这是Regex101上的一个例子,如果你想给它一个旋转: https://regex101.com/r/iZ6lQ8/1