2015-03-04 4 views
0

У меня есть набор строк, которые могут содержать или не иметь специальных символов. Пример:Заменить специальные символы в vbscript

Windows Live Fot¢t r 
Galer¡a fotogr fica de Windows Live 
Windows Live Maker 

Что я хочу сделать, это: «?»

  1. проверить, содержит ли вся строка специальный символ в нем
  2. Если да, то замените эти символы с

Я не пробовал еще ничего, так как я новичок в VB скриптов.

+1

Во-первых, определить, что особый характер или то, что не являются специальными символами, и в соответствии с тем, что ? –

+2

Вы используете VBScript или VB.Net? Это две разные вещи. – Blackwood

ответ

0

попробовать что-то вроде этого:

strCur="[email protected]#$%^&*()?><~`+=|\/.',{}[];:-%_20" 

for iCount = 0 to len(strCur) 
    paragraph= Replace(paragraph, Mid(strCur, iCount + 1, 1), "?") 
next 

'This line should replace those characters. You'll need a line for each char. 
paragraph = Replace$(paragraph, Chr(123), "a") 
paragraph = Replace$(paragraph, Chr(173), "A") 
1

Вы можете использовать регулярное выражение, в котором вы добавляете каждый символ, который вы считаете как не особый характер.

stringsToCheck = Array("Windows Live Fot¢t r", _ 
         "Galer¡a fotogr fica de Windows Live", _ 
         "Windows Live Maker") 

Set regExp = New RegExp 
regExp.IgnoreCase = True 
regExp.Global = True 
regExp.Pattern = "[^a-z0-9 [email protected]]" 'Add here every character you don't consider as special character 

For each str In stringsToCheck 
    strProcessed = regExp.Replace(str, "?") 
    WScript.Echo "Old String: " & str 
    WScript.Echo "New String: " & strProcessed 
Next 

Выход:

Old String: Windows Live Fot¢t r 
New String: Windows Live Fot?t r 
Old String: Galer¡a fotogr fica de Windows Live 
New String: Galer?a fotogr fica de Windows Live 
Old String: Windows Live Maker 
New String: Windows Live Maker 
0

Вы можете попробовать ниже код ..

Function replaceChars(str As String) As String 
    'msgbox replacechars ("[email protected]#$%^&*(") will return [email protected]$%^&() 
    Dim elem As Variant 

     replaceChars = str 
     For Each elem In Array("/", "\", ":", "*", "?", "<", ">", "|", "#", Chr(34)) 
      replaceChars = Replace(replaceChars, elem, "?") 
     Next 

End Function 
Смежные вопросы