2011-02-14 6 views
2

현재 쓰고있는 스크립트에 databaseinformation이라는 변수가 있습니다. 나는 문제의 문자열 INSTANCE_NAME 및 Database_Name을Vbscript의 문자열에서 데이터를 스트립 핑

라는 두 변수에이를 분리해서 할 :

[MSSQLSERVER] BESMgmt.BAK이 경우

instance_name은 MSSQLSERVER이며, 데이터베이스 _ BESMgmt입니다

. 문자열은 반드시 .BAK로 끝나지는 않지만 변수의 마지막 4 문자를 제거하면 문제가 없습니다. Instance_Name 및 Database_Name은 값과 길이를 변경합니다. 사전에 어떤 도움

덕분에

+0

2011 년에는 여전히 VBScript 및 이전 ASP로 코딩하고 있습니까?!?!!? –

답변

1

또는 정규 표현식 객체와 함께 할이, 당신은 더 유연하게

Option Explicit 
Dim regEx, matches 
Dim myString : myString = "[MSSQLSERVER]BESMgmt.BAK" 

set regEx = new RegExp 
regEx.pattern = "\[(.*)\](.*).{4}" 

set matches = regEx.Execute(myString) 
msgbox "Instance_name: " & matches(0).subMatches(0) & vbNewLine & "Database_name: " & matches(0).subMatches(1) 
2

는 @Trinitrotoluene : 근무 샘플 코드 - 일부는 말할 것이다 allthough

Option Explicit 

Dim ToBeSplit, Instance_Name, Database_Name 
Dim SplitMe 
Dim Position 

ToBeSplit = "[MSSQLSERVER]BESMgmt.BAK" 

SplitMe = Split(ToBeSplit, "]") 

If IsArray(SplitMe) Then 
    Instance_Name = SplitMe(0) 
    Database_Name = SplitMe(1) 
End If 

Instance_Name = Replace(Instance_Name, "[", "") 

If InStr(Database_Name, ".") > 0 Then 
    Database_Name = Left(Database_Name, Len(Database_Name) - 4) 
End If 

Response.Write "Instance_Name = " & Instance_Name & "<br>" 
Response.Write "Database_Name = " & Database_Name 
+1

대단히 감사합니다! – Trinitrotoluene