4

フォルダー/ファイル名として文字列があります。その文字列でフォルダー、ファイルを作成しています。この文字列には、目的のフォルダーまたはファイルを作成できないチャーターが含まれている場合と含まれていない場合があります

例えば

String folder = "ArslanFolder 20/01/2013";

したがって、これらの文字を「_」で削除したい

ここに文字があります

private static final String ReservedChars = "|\?*<\":>+[]/'"; 

そのための正規表現は何になりますか?私はreplaceAll();を知っています。しかし、そのための正規表現を作成したいと思います。

4

4 に答える 4

16

次のコードを使用します。

String folder = "ArslanFolder 20/01/2013 ? / '";
String result = folder.replaceAll("[|?*<\":>+\\[\\]/']", "_");

結果は次のようになります。

ArslanFolder 20_01_2013 _ _ _

スペースを置き換える必要があるとは言わなかったので、スペースがあります...必要に応じて追加できます。

于 2013-01-23T13:39:44.770 に答える
1

私はこれの1つを使用しました:

String alphaOnly = input.replaceAll("[^\\p{Alpha}]+","");
String alphaAndDigits = input.replaceAll("[^\\p{Alpha}\\p{Digit}]+","");

このリンクを参照してください: 特殊文字を置き換える

于 2015-11-04T08:55:16.447 に答える
0

これを試して :

replaceAll("[\\W]", "_");

英数字以外のすべての文字をアンダースコアに置き換えます

于 2013-01-23T13:35:16.933 に答える