正規表現に慣れていません。
文字列の場合、文字と数字以外のすべての文字をスペースに置き換えてから、スペースをマージして、スペースが 2 つ連続しないようにしたいと考えています。
正規表現を使用してそれを達成する方法は?
正規表現に慣れていません。
文字列の場合、文字と数字以外のすべての文字をスペースに置き換えてから、スペースをマージして、スペースが 2 つ連続しないようにしたいと考えています。
正規表現を使用してそれを達成する方法は?
2枚のパスが必要です
交換
[^a-zA-Z0-9]
1スペースあり
交換
[ ]{2,}
1スペースあり
2 つの置換を使用します。
[^a-zA-Z0-9]
スペースに置き換え[ ]{2,}
ます (SO のパーサーが混乱するため、文字クラスはここでのみ必要です。通常、スペースはそれ自体で十分です)。PowerShell では、次のようになります
$s -replace '[^a-zA-Z0-9]', ' ' -replace ' {2,}', ' '
あなたには自分自身が必要なようですね
replace(mystring, "[^a-zA-Z0-9]+", " ");
単一の正規表現でこれを行うかどうかはわかりませんが、2つだとうまくいくようです
echo -n 'dog*&$\@$ cat On1 tw0' |
perl -pe 's/([^([:alnum:])]|\s)/ /g' |
perl -pe 's/\s+/ /g'
出力=dog cat On1 tw0