шаблон регулярных выражений Java-символы - PullRequest
2 голосов
/ 29 февраля 2012

Я ищу шаблон регулярного выражения в Java, который соответствует всем символам, кроме букв от a до z.

Другими словами, я хочу шаблон регулярного выражения, который соответствует символам, таким как

 !"#¤%&/()=?`´\}}][{€$@

Или каким-то образом обрезать строку только по буквам.

В качестве примера рассмотрим следующую строку:

 "one!#"¤%()=) two}]}[()\ three[{€$"

to:

 "one two three"

Ответы [ 4 ]

4 голосов
/ 29 февраля 2012

Версия Unicode будет

\PL

\PL - это все кодовые точки Unicode, которые не имеют свойства "Буква".

\pLбудет аналогом, все кодовые точки Unicode, которые имеют свойство "Буква".

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

Вы также можете объединить их в классы символов, так же, как вы бы обрабатывали предопределенные классы, например,

[^\pl\pN]

Подойдет любой символ, который не является буквой или цифра числовой символ в Unicode.

3 голосов
/ 29 февраля 2012

В качестве примера рассмотрим следующую строку:

 "one!#"¤%()=) two}]}[()\ three[{€$"

to:

 "one two three"

Необходимый шаблон должен соответствовать всему, что не является буквойни разделитель.В противном случае вы получите "onetwothree" вместо "one two three", который вы просили.

[^\pL\pZ]
1 голос
/ 29 февраля 2012

Простейшая форма: [^ az]

Также может быть [^ a-zA-Z], если вы хотите удалить также заглавные буквы.

1 голос
/ 29 февраля 2012

[^ a-zA-Z] - класс символов, который соответствует каждому символу, кроме букв от a до z в нижнем или верхнем регистре.

...