如何从字符串的开头删除非字母字符直到第一个字母字符?

时间:2014-07-08 15:53:55

标签: regex vbscript trim

我需要在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)

2 个答案:

答案 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."

由于您的规格并不完全清楚,因此该模式可能需要进一步开展工作。