Я хочу найти строку подстроки, но допускаю различные, но похожие знаки пунктуации (включая пробелы).Строка поиска, но допускать разные, но похожие знаки пунктуации
Например, если у меня есть строка
@"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]
До сих пор я изменяющая строки и подстроки, заменяя комбинацию символов и выполнение повторяющихся запросов, но это, кажется неуклюжим способом, должно быть умный способ сделать это?
Я бы раздеться обе строки всех не буквенно-цифровых символов и не -пространствами. Затем выполните сравнение. – rmaddy
Да, я собирался заявить в вопросе, что я это пробовал, но этот метод также дает положительные совпадения, когда пунктуация не очень похожа. Я бы хотел, чтобы он был более точным. Я предполагаю, что я мог бы заменить все пробелы «нормальными» пробелами и всеми двойными кавычками с одним типом двойных кавычек и т. Д. Это сработало бы, но это кажется немного неуклюжим, я хотел бы знать, как это сделать «правильно», – narco