2011-10-19 16 views
1

私はファイル内のすべての空白を削除し、 ' - 'でそれらを置き換える小さなRegexをここに持っています。Regex .netを使用して指定された文字を置き換える

他の文字も '、'、 '_'などの ' - 'で置き換えたいと考えています。

これらの文字を正規表現でどのようにリストできますか?

Regex r = new Regex(@"\s+"); 

string fileName = r.Replace(Files.Name, @"-"); 

答えて

4
Regex r = new Regex(@"[\s,_-]+"); 

string fileName = r.Replace(Files.Name, @"-"); 

-は、最初の最後か、エスケープ必要がありますでなければならないことに注意してください。

+0

- も最初にすることができます:) – FailedDev

+0

@FailedDev脚本しかし右。 – xanatos

+0

@FailedDevそれは、 ':-)'または ':-D'を持つペタンティックでした... pe': '-D' antic – xanatos

3
Regex r = new Regex(@"(\s|-|,|_)+"); 
+1

完璧な答えです。ありがとう! –

+2

それは非効率的なやり方です。 @ xanatosのバージョンはよりクリーンで高速です。 –

+0

私は、文字の順序やエスケープについて心配する必要はありませんが、それは個人の好みであるため、より読みやすいと思います。私はこれを「非効率的」と呼ぶマイクロ最適化の方法だと思います。はい、何千回も繰り返すと、数ミリ秒遅くなることがあります。それは重要ですか?絶対的な最速が必要な場合は、さまざまな文字のそれぞれのストレート文字列の置換がさらに速くなります。可読性は一般にIMOにとってより重要になります。 – mikel

関連する問題