英数字のみに加えて、アンダースコア、ピリオド、マイナス (ダッシュ) 文字など、いくつかの文字を許可する文字列の「クリーンアップ」関数を作成しようとしています。
現在、私たちの関数はソース文字列のまっすぐな char 反復を使用していますが、これを RegEx に変換しようとしています。有効な正規表現を取得するまでプロファイルできません。)
私にとって問題は 2 つあります。1つ、私は次の正規表現を知っています...
[a-zA-Z0-9]
...さまざまな英数字に一致しますが、アンダースコア、ピリオド、およびマイナス文字も含めるにはどうすればよいですか? それらを単に「\」文字でエスケープし、残りの括弧で囲みますか?
第 2 に、一致の一部ではない文字 (つまり、「?」などの他の句読点) については、アンダースコアに置き換えたいと考えています。
私の考えでは、代わりに、目的の文字の範囲で一致し、目的の範囲にない単一の文字で一致してから、それを置き換えます。そのための正規表現は、このように括弧間の最初の文字としてカラットを含めることだと思います...
[^a-zA-Z0-9]
それは正しいアプローチですか?