PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
-
nkaretnikov
PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Здравствуйте!
Как получить количество, скажем, русских символов в двуязычной строке
Пример
‘строкасодержащаяenglishsymbol’.lenRU и результат 15
‘строкасодержащаяenglishsymbol’.lenEN и результат 13
В идеале скрипт должен считать количество символов каждого языка в мультиязычных файлах, но эту часть я знаю как создать, а о подсчет спотыкаюсь
Как получить количество, скажем, русских символов в двуязычной строке
Пример
‘строкасодержащаяenglishsymbol’.lenRU и результат 15
‘строкасодержащаяenglishsymbol’.lenEN и результат 13
В идеале скрипт должен считать количество символов каждого языка в мультиязычных файлах, но эту часть я знаю как создать, а о подсчет спотыкаюсь
-
Kazun
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Код:
Код: Выделить всё
([char[]]'строкасодержащаяenglishsymbol' -match "[а-я]").count-
Kazun
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Код:
Код: Выделить всё
([char[]](gc in.txt -raw) -match "[а-я]").Count-
Kazun
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.
-
Iska
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Цитата Iska:
Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.
А еще лучше \p{IsCyrillic}. Почему? Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a, и тогда, например, в строке 'съеш ещё этих мягких французских булок, да выпей чаю! /dev/null' итог будет равным 50, а не 43 как положено, поэтому использование \p{IsCyrillic} более предпочтительно.
Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.
А еще лучше \p{IsCyrillic}. Почему? Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a, и тогда, например, в строке 'съеш ещё этих мягких французских булок, да выпей чаю! /dev/null' итог будет равным 50, а не 43 как положено, поэтому использование \p{IsCyrillic} более предпочтительно.
-
Nikolay_Karetnikov@vk
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Спасибо!
Код:
выдает $len=3 на вложенном файле.
Как это? Вроде ожидать надо количество символов, а не строк
Код:
Код: Выделить всё
$lines = Get-Content 'C:\powershell\in.txt'
$len = $lines.lengthвыдает $len=3 на вложенном файле.
Как это? Вроде ожидать надо количество символов, а не строк

-
greg zakharov
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Дык если в файле три строки, что Вы ожидаете увидеть, десять? Get-Content по уолчанию считвает файл как массив строк, отсюда и количество строк, а не символов.
-
greg zakharov
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Символы нужны
По строкам считать в цикле или есть проще способ?
По строкам считать в цикле или есть проще способ?
-
Nikolay_Karetnikov@vk
-
greg zakharov
Re: PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Цитата greg zakharov:
Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a,
Ну, это навряд ли.
Указанное Вами идеологически более верное — вроде как факт. Но дело в том, что туда попадут все символы из набора 0400 - 04FF, т.е.:
Скрытый текст
[spoiler]
[/spoiler]
а не только буквы русского алфавита от а до я. А оно нам надо? Вопрос риторический.
Есть вероятность, что при задании шаблона [а-яё] может быть введена латинская a,
PowerShell - [решено] Подсчет символов разных языков в мультиязычных файлах
Ну, это навряд ли.
Указанное Вами идеологически более верное — вроде как факт. Но дело в том, что туда попадут все символы из набора 0400 - 04FF, т.е.:
Скрытый текст
[spoiler]
[/spoiler]а не только буквы русского алфавита от а до я. А оно нам надо? Вопрос риторический.