Powershell - усечение символов в строке - PullRequest
0 голосов
/ 20 января 2012

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

Строка должна заканчиваться символом '.

IMD + F ++ ::: Be-Light Fruit Yog VLF4x (6x120g) '

Я немного разбирался с кодом, но потом немного застрял, и теперь мой мозг болит- Я полагаю, что где-то в мире сейчас рано, и у людей свежие мысли!

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 21 января 2012

Следующее проверяет строку после последовательности ::: s и определяет, нужно ли ее усекать.

$str = "IMD+F++:::Be-Light Fruit Yog VLF4x(6x120g)'"
$prefix = $str -replace ":::.*",":::"
$trunc = $str -replace ".*:::",""
if ($trunc.length -gt 34)
{
    $trunc = $trunc.Substring(0,33) + "'"
}
Write-Host "$prefix$trunc"
0 голосов
/ 21 января 2012
$string -replace "(.*:::)([^']{1,33}).+",$('$1$2' + "'")
0 голосов
/ 20 января 2012

Можно попробовать

$string1="IMD+F++:::Be-Light Fruit Yog VLF4x(6x120g)'"
$string2 = $string1 -replace '(.*:+)(.*)','$2'
$res = if ($string2.length -gt 34) {$string2.Substring($($string2.length-34))}else{$string2}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...