Как сделать регулярное выражение Java, которое соответствует слову на любом языке - PullRequest
7 голосов
/ 15 декабря 2010

Для сопоставления слова на английском я бы использовал шаблон [a-zA-Z]+.

Можно ли как-нибудь написать регулярное выражение, которое будет соответствовать слову на любом языке?Это даже если слово содержит символы типа ščžé....Я понятия не имею, какие возможные символы существуют в мире, поэтому я не думаю, что чисто [a-zA-Zščžé]+ будет достаточно ...

Есть ли лучший способ написать это выражение?

Ответы [ 2 ]

12 голосов
/ 15 декабря 2010

Согласно шаблону Javadoc , \p{L}+ должно соответствовать последовательности букв Unicode (то есть символов, которые имеют категорию L в Unicode). Это, вероятно, самое широкое определение, хотя вы, возможно, захотите взглянуть на список категорий юникода , чтобы решить, хотите ли вы добавить другие категории (например, есть такая, которая называется «цифрой»).

0 голосов
/ 15 декабря 2010

Обычно вы будете использовать некоторые диапазоны символов Юникода

[a-zA-Z\u0000-\u1111]

или

[a-zA-Zš-é]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...