Android java regex соответствует всем, кроме одного символа

У меня есть база данных CSV, которая содержит имена, адреса и т. Д.

Теперь я буду искать в своем приложении для Android что-то, скажем, адрес, а затем отобразить другие связанные с ним записи – имя, телефон …

Проблема в том, что в CSV некоторые из записей с отсутствующими символами, а вместо них есть пробелы – например, «G rmany Dresden» (с пробелом вместо «e»)

К сожалению, база данных часто обновляется, и я не могу ее исправить каждый раз вручную.

Как я могу найти «Германию Дрезден», «G rmany Dresden», «Germa y Dresden» и т. Д., Когда я ищу «Германию»?

Я предполагаю, что должен быть предел несовпадающих символов, поэтому давайте предположим, что их не более двух – по крайней мере, я никогда не видел больше, чем

Первое, что приходит на ум, – это расстояние Левенштейна (вы ищете что-то на расстоянии 1 от Германии, кроме вставок и исключений). Вы не можете сделать это напрямую с регулярным выражением, но вы можете генерировать регулярное выражение программно.

Здесь есть другой ответ, который может быть полезен : расстояние Левенштейна в регулярном выражении

Предположим, что ваш персонаж равен '='

 String patternString = "[^=]*"; String s2 = "abc="; Pattern p = Pattern.compile(patternString); Matcher m = p.matcher(s2); if(m.matches()) System.out.println("= does not contain."); else System.out.println("= contains."); 

Надеюсь, теперь все ясно.