【问题标题】:How to match all whitespace in VBA [duplicate]如何匹配VBA中的所有空格[重复]
【发布时间】:2019-08-27 20:55:08
【问题描述】:

我遇到了类似的问题as this question here\s 不匹配 VBA 中的所有空格。

但我想抓住all kinds of whitespace - spaces, tabs, newlines, thin space, hair space etc. 而不仅仅是其中一个。

除了像下面这样对每个 unicode 值进行硬编码之外,还有其他可能性吗?

With regEx
    .Global = True
    .Pattern = "(\s|\u2009|\u2008|.............)"
End With

How do I isolate a space using RegExp in VBA (\s vs. \p{Zs})? 想要隔离空格 - 我想要一种可读且可靠的方式来匹配任何空格,而无需按照结束问题的人的建议列出它们的 unicode 值。

【问题讨论】:

  • 取决于您需要对它们做什么。如果您需要删除任何额外的前导或尾随空格,而不是通过正则表达式检查它们,为什么不直接Trim() 它们呢?
  • @Rawrplus - 我认为 Trim 不适用于 ChrW(8203)。
  • 不,它不是,虽然它是一个开始的地方。最初可能想要修剪它,然后使用REPLACE() 删除任何多余的不需要的字符,例如头发空间,但是我懒得为您上面提供的所有不需要的字符重新创建一个有效的替换条件/正则表达式。 对不起...

标签: regex excel vba


【解决方案1】:

没有完美的选择,因此我建议使用精确的值/代码。

你应该安全地使用这个正则表达式模式:

[\s\n\r\t \xA0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000\uFEFF]+

【讨论】:

    猜你喜欢
    • 2011-03-09
    • 2018-10-20
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多