Regex для удаления только специальных символов, а не букв других языков - PullRequest
0 голосов
/ 25 июня 2018

Я использовал выражение регулярного выражения для удаления специальных символов из имени.Выражение удалит все буквы, кроме букв английского алфавита.

public static void main(String args[]) {
    String name = "Özcan Sevim.";
    name = name.replaceAll("[^a-zA-Z\\s]", " ").trim();
    System.out.println(name);
}

Вывод:

zcan Sevim

Ожидаемый вывод:

Özcan Sevim 

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

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

используйте [\ W +] или "[^ a-zA-Z0-9]" в качестве регулярного выражения, чтобы соответствовать любым специальным символам, а также используйте String.replaceAll (regex, String), чтобы заменить символ разделения на пустую строку.помните, что первый аргумент String.replaceAll является регулярным выражением, вы должны избегать его с обратной косой чертой, чтобы рассматривать их как буквенный символ.

 String string= "hjdg$h&jk8^i0ssh6";
        Pattern pt = Pattern.compile("[^a-zA-Z0-9]");
        Matcher match= pt.matcher(string);
        while(match.find())
        {
            String s= match.group();
        string=string.replaceAll("\\"+s, "");
        }
        System.out.println(string);
0 голосов
/ 25 июня 2018

Используйте для этого Guava CharMatcher :) Его будет легче читать и поддерживать.

name = CharMatcher.ASCII.negate().removeFrom(name);
0 голосов
/ 25 июня 2018

Вы можете использовать \p{IsLatin} или \p{IsAlphabetic}

name = name.replaceAll("[^\\p{IsLatin}]", " ").trim();

Или, чтобы удалить пунктуацию, просто используйте \p{Punct}, например:

name = name.replaceAll("\\p{Punct}", " ").trim();

Выходы

Özcan Sevim

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

...