私はこれをしようとすると、正規表現関数がエラー「命令の終了予定を」スロー:
Dim param = Regex.Replace("te !,;stDD ", "[^A-Za-z0-9]", "")
正規表現ではなくパーサーによってエラーが発生します。 VBScriptでは、変数を定義して同じステップで値を割り当てることはできません。定義と割り当てを分けなければなりません(明示的な定義が必要な場合)。
Dim param
param = Regex.Replace("te !,;stDD ", "[^A-Za-z0-9]", "")
あなたはしかし、コロンで区切ることにより、1行で両方のステートメントを置くことができます。
Dim param : param = Regex.Replace("te !,;stDD ", "[^A-Za-z0-9]", "")
注意、しかし、VBScriptで静的Replace()
方法とはRegex
クラスが存在しないということなので、あなたはまだRegex.Replace()
からエラーが発生しています。
2番目のコードスニペットのようにRegExp
オブジェクトをインスタンス化し、そのオブジェクトのReplace()
メソッドを使用する必要があります。
私はこれをしようとすると、文字列が変更されていませんが、正規表現関数は渡さん:
Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
param = re.Replace("te !,;stDD ", "") 'string doesn't change on result
しかし、文字列が変更を行います。あなたは、入力と出力を詳しく見てみた場合、あなたはわかります
"te !,;stDD " ← input string
"te !,;stDD " ← output string
あなたの交換作業は、文字列からどちらも文字も数字である最初の文字を削除します。最初のスペースであるあなたの例の文字列の場合。あなたはTrue
にGlobal
プロパティを設定する必要があります文字または数字ではありませんすべて文字を削除するために:
Set re = New RegExp
re.Pattern = "[^A-Za-z0-9]"
re.Global = True
param = re.Replace("te !,;stDD ", "")
RE.Global = Trueの – Slai
これは、のthnxをそれを修正しました! – sansactions