![]() |
Подсчет символов разных языков в мультиязычных файлах
Здравствуйте!
Как получить количество, скажем, русских символов в двуязычной строке Пример ‘строкасодержащаяenglishsymbol’.lenRU и результат 15 ‘строкасодержащаяenglishsymbol’.lenEN и результат 13 В идеале скрипт должен считать количество символов каждого языка в мультиязычных файлах, но эту часть я знаю как создать, а о подсчет спотыкаюсь |
Код:
([char[]]'строкасодержащаяenglishsymbol' -match "[а-я]").count |
Токмо шаблон чуть ширше — [а-яё], поскольку ё выпадает за границы от а до я.
|
Цитата:
|
Вложений: 1
Спасибо!
Код:
$lines = Get-Content 'C:\powershell\in.txt' выдает $len=3 на вложенном файле. Как это? Вроде ожидать надо количество символов, а не строк :) |
Дык если в файле три строки, что Вы ожидаете увидеть, десять? Get-Content по уолчанию считвает файл как массив строк, отсюда и количество строк, а не символов.
|
Символы нужны :)
По строкам считать в цикле или есть проще способ? |
Ну дык используйте measure:
Код:
Get-Content in.txt | Measure-Object -Character |
Круть! )
Как это совместить теперь с -match "[а-я]"? Код:
$lines = Get-Content 'C:\powershell\in.txt' |
Цитата:
Указанное Вами идеологически более верное — вроде как факт. Но дело в том, что туда попадут все символы из набора 0400 - 04FF, т.е.: Скрытый текст
![]() а не только буквы русского алфавита от а до я. А оно нам надо? Вопрос риторический. |
Код:
([char[]](gc in.txt -raw) -match "[а-я]").Count |
а если
Major Minor Build Revision ----- ----- ----- -------- 2 0 -1 -1 и Get-Content : Не удается найти параметр, соответствующий имени параметра "raw" ? |
Код:
([IO.File]::ReadAllText("C:\in.txt").ToCharArray() -match "[а-я]").Count |
И отлить в металле! :)
Спасибо большое! |
Время: 10:02. |
Время: 10:02.
© OSzone.net 2001-