Tag: 不可打印

Excel VBA中的RegEx不正确匹配扩展ASCII字符

我正试图使用​​Excel VBA中的以下RegEx删除所有不可打印和非ASCII(扩展)字符: [^\x09\0A\0D\x20-\xFF] 这在理论上应该与任何不是制表符,换行符,回车符或可打印的ASCII字符(hex和hex之间的字符代码或十二进制和二十五和二十五进制)之间匹配。 我已经在这里证实,Microsoft VBScript正则expression式支持\ xcc表示法,其中CC是hex的ASCII码。 问题是,这个正则expression式匹配127以上的每个字符。然后,当匹配字符的代码高于127时,在match.value上抛出一个“无效的过程调用”。是不是VBScript RegExes不支持127以上的字符代码? 我似乎无法在任何地方find这个数据。 以下是完整的代码: regEx.Pattern = "[^\x09\0A\0D\x20-\xFF]" regEx.IgnoreCase = True 'True to ignore case regEx.Global = True 'True matches all occurances, False matches the first occurance regEx.MultiLine = True If regEx.Test(Cells(curRow, curCol).Value) Then Set matches = regEx.Execute(Cells(curRow, curCol).Value) numReplacements = numReplacements + matches.Count For matchNum = matches.Count To […]