避免删除下划线和数字

joh*_*253 2 regex vbscript

我试图消除所有小写字符,但VBScript正在删除所有下划线,小写字母和数字.我怎样才能使它只取出小写字母并且不会消除我的其他字符?

With CreateObject("VBScript.RegExp")
    .Pattern = "[^A-Z ]"
    .Global = True
    For Each cell In Worksheets("Sheet1").Range("C1:C25")
        If Not IsEmpty(cell.Value) Then _
            cell.Value = Application.Trim(.Replace(cell.Value, ""))
    Next cell
End With?
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 6

小写字母正则表达式是[a-z].

你的正则表达式 - [^A-Z ]匹配任何不是大写字母和空格的字符,因此它匹配的不仅仅是小写字母.

由于您要删除字母,因此最好+[a-z]匹配1个或多个匹配项后添加量词:

.Pattern = "[a-z]+"
Run Code Online (Sandbox Code Playgroud)

  • @AnsgarWiechers:当然,性能提升不是那么有形,只是它对于正则表达式引擎应该"更容易",因为它不必在序列中的每个字符处停止和恢复. (2认同)