2009-08-07 10 views
2
Dim strPattern As String: strPattern = "[^a-zA-Z0-9]" 
Dim regex As New RegExp 
regex.Pattern = strPattern 
result = regex.Replace(pFileNameWithoutExtension, "_") 

これは機能しますが、1文字のみを置き換えます。どのように複数の文字を置き換えることができます。例: "ÉPÉ"は "P"ですが、現在の結果は "_PÉ"ですか?VB6 Regex Replace

答えて

9

グローバルパターンマッチングを有効にするだけです。

Dim strPattern As String: strPattern = "[^a-zA-Z0-9]" 
Dim regex As New RegExp 

regex.Global = True 

regex.Pattern = strPattern 
result = regex.Replace(pFileNameWithoutExtension, "_") 
+0

+1と受け入れます。そのグローバルプロパティについて知りませんでした。 –

0
Dim strPattern As String: strPattern = "[^a-zA-Z0-9]*" 
Dim regex As New RegExp 
regex.Pattern = strPattern 
result = regex.Replace(pFileNameWithoutExtension, "_") 
+0

VB6では動作しません。 #P#ではなく#P#を返します。 –

+0

@Gordon:リストにない0文字以上の文字列と一致するだけで、リストの最初の文字で終了します。 – MyItchyChin