regex - 删除非 ASCII 但不是一个特定字符
问题描述
当前:我有一个函数可以删除所有非 ascii 字符:Excel 中的 [^\x20-\x7F] 从字符串中删除,这很有效!
需要:删除非 ascii 字符但不删除 char(10)(换行符)的函数。我虽然正则表达式支持否定局部性,所以我的建议是 ([^\x20-\x7F]+/n)。
但是,在这种形式中,它不会删除任何非 ascii 字符(但会保留换行符)。
解决方案
这将保留 ASCII 代码在 20 16和 7F 16以及 A 16之间的字符:
Public Function Kleanup(sIn As String) As String
Dim temp As String, L As Long, i As Long, CH As String
temp = ""
L = Len(sIn)
For i = 1 To L
CH = Mid(sIn, i, 1)
If (Asc(CH) > 31 And Asc(CH) < 128) Or CH = Chr(10) Then
temp = temp & CH
End If
Next i
Kleanup = temp
End Function
推荐阅读
- puppeteer - 如何 page.click 动态列表中具有给定值的元素
- javascript - 实时服务器和本地主机上的 Date().toLocaleString() 输出格式不同
- javascript - rxjs 传递 forkjoin 一个函数,该函数返回一个可观察的数组
- python-asyncio - 如何将数据传递给合作的 aysncio 协程?
- python - 离散 Kolmogorov-Smirnov 测试:与纯 R 相比,使用 rpy2 时得到错误值
- javascript - 为什么我在运行我的函数后得到 NaN?
- android - 如何创建一个颤振插件,在触发后台服务事件时从关闭状态打开应用程序
- scala - 如何在scala列表中找到多个最大参数
- r - dplyr 加权平均值产生长度误差......如何总结加权平均值?
- pandas - 来自不同长度值的字典的熊猫数据框