Регулярное выражение: разделяйте английские и неанглийские слова запятыми? - PullRequest
1 голос
/ 18 ноября 2009

Есть ли шаблон регулярного выражения для изменения этой строки

Это смесь из русского и английского языков. üößñ üößñ - слова Unicode.

к этому?

Это смесь слов, üößñ и английский.

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

Спасибо.

Ответы [ 4 ]

1 голос
/ 18 ноября 2009
    String s = "This is a mix string of üößñ and English. üößñ üößñ are Unicode words.";
    System.out.println(s.replaceAll("((?: ?[\\p{L}&&[^A-Za-z]]+)+)", ",$1,"));

Сценарии Unicode определяют около 45 различных языков сценариев. Вышеупомянутое просто обнаруживает любой Unicode не в диапазоне ASCII.

1 голос
/ 18 ноября 2009

Конечно, вы можете использовать \ x для фильтрации определенных диапазонов кодов ASCII

Например (в JavaScript):

var x = "This is a mix string of üößñ and English. üößñ üößñ are Unicode characters.";
x.replace(/([^\x00-\x80]+\s)+/g, function(match) { return match.slice(0,-1)+", "; } ); // matches characters outside the 0-128 ASCII range

Выход:

Это смесь из английского и английского языков. üößñ üößñ, символы Юникода.

Я уверен, что другой опытный человек с регулярными выражениями может оптимизировать дальше, но это лучшее, что я могу придумать в полусне:)

1 голос
/ 18 ноября 2009

1001 * Javascript *

/ ((?: \ [^ \ W \ d] +) +) / г

'Это смесь из русского и английского языков. üößñ üößñ - слова Unicode. '. replace (/ ((?: \ [^ \ w \ d] +) +) / g,', $ 1, ')

Это смесь слов, üößñ и английского. Üößñ üößñ, слова Unicode.

Mark

1 голос
/ 18 ноября 2009

Ни одно регулярное выражение не может обнаружить строки на определенном языке , но вы, безусловно, можете сопоставлять символы в (или не в) диапазоне кодовых точек, используя литералы Unicode, такие как

/[\u0900-\u097F]+/

соответствует последовательности символов деванагари.

Помните, что скрипт (набор символов) может использоваться многими языками.

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