2016-07-30 2 views
0

я, используя этот шаблон, чтобы найти любое слово в строке: \ Ь (\ ш {1,})Найти арабские слова, используя регулярное выражение

, но это не может найти арабские слова. Как я могу изменить этот шаблон, чтобы найти как английские, так и арабские слова?

Благодаря

+0

Можете ли вы представить пример совпадений по арабскому предложению? Я не знаю о пространствах в арабском, но если вам нужно только разграничивать слова, возможно, вы можете использовать регулярный '.split ('')'? – antoni

+0

Арабские пространства такие же, как и английские. Но я должен использовать регулярное выражение вместо .split ('') .. @antoni –

+0

{1,} можно заменить на +. – Simon

ответ

1

Regex \ ш является псевдонимом для A-Z, 0-9 и подчеркивание (_) и не будут соответствовать арабский диапазон Юникода. Для того, чтобы включить другие, чем Az символов, нужно указать их, например

[A-z\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]+ 

Для объяснения о коды символов см Match Arabic word with regex that ends with “#”?

+0

Мне нужно просто арабские слова без конца. Слова разделены пространством. Я не знаком с регулярными выражениями, и я не могу удалить # mark из конца! @smirnov –

+0

Почему вы не можете удалить # отметку с конца? – Alex

+0

Я не знаю, как я могу это сделать! @smirnov –

0

Если текст содержит только английский и арабский, и вы хотите, чтобы отсортировать результаты, вы мог бы использовать это:

([^x00-\x7F ]+) для арабского текста и это: (\w+) для текста на английском языке

Первая часть захватывает все другие, чем английский набор символов мн.ч. нам пространство; вторая часть захватывает английские символы (плюс _).

0

Как и smirnov, это регулярное выражение, которое вы используете, найдет только латинские строки. Для арабского языка вы должны использовать [\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufbc1]|[\ufbd3-\ufd‌​3f]|[\ufd50-\ufd8f]|‌​[\ufd92-\ufdc7]|[\uf‌​e70-\ufefc]|[\uFDF0-‌​\uFDFD] (который должен найти все арабские символы, даже такие странные, как ؁.)

В зависимости от того, что вы пытаетесь сделать, вы можете разбить строку на список и обработать ее таким образом (это то, что я обычно делаю, когда имею дело со текстами на смешанном языке). Затем вы можете определить язык каждого слова и обработать его соответствующим образом.

Смежные вопросы