これまで私は手動で文字を追加してそのコードを破棄していました。私はもう少し積極的になりたいので、有効な文字以外のすべてを置き換えることになっているこの関数が見つかりました。
私の最初のハードルは、うまくいかないということです。以下のコードは私の完全なテストファイルで、MsgBoxは空白になります。
vbscript関数クリーンな文字列のみ特定の文字を許可する
私の2番目の質問は、パフォーマンスに関するものです。この関数は非常に大きな文字列を処理します。この方法はかなり遅くなりますか?誰も他の何かをお勧めしますか?
Function CleanUp (input)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(input, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "-")
CleanUp = outputStr
End Function
MsgBox (CleanUp("Test"))
編集:私は愚かだとちょうどそれが何も返さないように起こしていた私は、変数重複が整理しました。それは今働いている。パフォーマンスに関する質問や推奨事項の入力を受け付けます。
^\ w +の略語を教えてください。 – lovechillcool
パターン内の\ wは、任意の単語文字に一致する文字クラスです。これは[a-zA-Z_0-9]と同じです。 ^は文字列の先頭を示します。このパターンは、文字列の直後の行から始まり、その最後の単語文字または文字列の終わりのいずれかが最初に出現する行の単語文字列と一致します。 – Nilpo
ありがとうございました。 @Nilpo – lovechillcool