我需要在VBScript中使用代码来修剪从开始到第一个字母字符的字符串:
1)№123JohnDoe。 1号房间。
结果应为
John Doe。 1号房间。
如果我使用此代码:
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.Pattern = "[^A-Za-z\n\r]"
strSearchString = objRegEx.Replace(strSearchString, "")
我不仅从开始,而且从各处修剪角色。这不是我需要的。 我应该使用什么方法来修剪起始符号?
P.S。这段代码粗略地完成了我的需要,但最终并不优雅:
objRegEx.Global = True
objRegEx.Pattern = "[a-zA-Z]"
Set Matches = objRegEx.Execute(strSearchString)
FirstMatch = Matches(0).FirstIndex
MyString = Mid(strSearchString, FirstMatch+1)
答案 0 :(得分:3)
strSearchString = "№123 John Doe. Room 1."
With New RegExp
.Pattern = "^[^a-zA-Z]*"
strSearchString = .Replace(strSearchString, "")
End With
WScript.Echo strSearchString
从值的开头,替换指示集中未包含的任何字符序列。
答案 1 :(得分:2)
使用^
(字符串的开头)将模式锚定在字符串的开头。 E.g:
>> set r = New RegExp
>> r.Pattern = "^\D*\d+\s*"
>> Wscript.Echo qq(r.replace("№123 John Doe. Room 1.", ""))
>>
"John Doe. Room 1."
由于您的规格并不完全清楚,因此该模式可能需要进一步开展工作。