2017-12-18 5 views
-2

文字列内の特殊文字とスペースをハイフンに置き換えます。以下 は私のコードです:Powershellは、スペースと特殊文字をハイフンで置き換えます。

$c = 'This_is my code [email protected]# characters are not $ allowed% remove spaces ^&*(){}[]/_:;,.?/"''' 
$c = $c -replace [regex]::Escape('[email protected]#$%^&*(){}[]/:;,.?/"'),('-') 
Write-Host $c 

は、すべての特殊文字、スペース、および単一文字のハイフンに置き換え

+1

特別な定義します。どんなキャラクターが欲しいですか? a-z、A-Z、0-9およびハイフン? –

+0

出力はこのようになります - 'This_is-my-code ----- characters-are-not --- allowed - remove-spaces -----------_---- ---- ' –

+0

スペースがあればどこでもハイフンに置き換えたいです。特殊文字があればどこでも、私はスペースで置き換えたい。スペースは再びハイフンに置き換えられます。 – user2598808

答えて

1

\ Wは、非単語文字を置き換えます。それは置き換えられませんa-z, A-Z, 0-9

$c = 'This_is my code [email protected]# characters are not $ allowed% remove spaces ^&*(){}[]/_:;,.?/"''' 
$c -replace '\W','-' 

This_is-my-code-----characters-are-not---allowed--remove-spaces-----------_-------- 
0

コード

$original = 'This_is my code [email protected]# characters are not $ allowed% remove spaces ^&*(){}[]/_:;,.?/"''' 
$desired = 'This_is-my-code-----characters-are-not---allowed--remove-sp‌​aces-----------_----‌​----' 

$replacements = "[^a-zA-Z_]" # anything that's _not_ a-z or underscore 
$result = $original -replace $replacements, '-' 

Write-Host "Original: $c" 
Write-Host "Desired : $d" 
Write-Host "Result : $r" 

結果

Original: This_is my code [email protected]# characters are not $ allowed% remove spaces ^&*(){}[]/_:;,.?/"' 
Desired : This_is-my-code-----characters-are-not---allowed--remove-sp‌​aces-----------_----‌​---- 
Result : This_is-my-code-----characters-are-not---allowed--remove-spaces-----------_-------- 
を見つけるための直接的な方法はあります
+0

'\ w'は' [a-zA-Z_] 'と同じです... – TheIncorrigible1

関連する問題