如何使用 VB 从字符串中删除表情符号
How to remove Emoji from string using VB
我需要使用经典 asp 和 vb 脚本从字符串中删除一些表情符号字符。这是我拥有的:
重复/其他
预定
领先
而我需要的是:
重复/其他
预定
铅
我已经能够使用此功能删除表情符号,但我想保留特殊字符,例如正斜杠 /、空格、&、: 等
感谢任何帮助。
Function strClean (strtoclean)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(strtoclean, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "")
strClean = outputStr
End Function
您当前的正则表达式匹配除换行符和 ASCII 字母数字字符之外的任何字符。它不匹配表情符号,因为基于 VBScript ECMA-262 第三版的正则表达式引擎无法仅用 .
模式匹配星体平面字符。
如果您只想为当前模式添加表情符号匹配支持,您可以将 .
替换为 (?:[[=14=]-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])
模式并使用
objRegExp.Pattern = "(?:(?![a-zA-Z0-9])(?:[[=10=]-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))+"
如果您只想删除除 ASCII 字符以外的所有字符,您可以使用
objRegExp.Pattern = "objRegExp.Pattern = "(?:(?![ -~])[\s\S])+"
该模式匹配不等于可打印 ASCII 字符的任何一个或多个 (+
) 个字符([\s\S]
匹配任何空白和非空白字符)。
我需要使用经典 asp 和 vb 脚本从字符串中删除一些表情符号字符。这是我拥有的:
重复/其他
预定
领先
而我需要的是:
重复/其他
预定
铅
我已经能够使用此功能删除表情符号,但我想保留特殊字符,例如正斜杠 /、空格、&、: 等
感谢任何帮助。
Function strClean (strtoclean)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(strtoclean, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "")
strClean = outputStr
End Function
您当前的正则表达式匹配除换行符和 ASCII 字母数字字符之外的任何字符。它不匹配表情符号,因为基于 VBScript ECMA-262 第三版的正则表达式引擎无法仅用 .
模式匹配星体平面字符。
如果您只想为当前模式添加表情符号匹配支持,您可以将 .
替换为 (?:[[=14=]-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])
模式并使用
objRegExp.Pattern = "(?:(?![a-zA-Z0-9])(?:[[=10=]-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))+"
如果您只想删除除 ASCII 字符以外的所有字符,您可以使用
objRegExp.Pattern = "objRegExp.Pattern = "(?:(?![ -~])[\s\S])+"
该模式匹配不等于可打印 ASCII 字符的任何一个或多个 (+
) 个字符([\s\S]
匹配任何空白和非空白字符)。