以下是我正在使用的典型字符串:
· Identify & document site-related constraints and assumptions.
我想在“识别”之前擦除那个字符串以摆脱一切......
我写了一个函数来获取字符串并将其擦除,这里是:
Function dataScrub(dataIn As String)
Dim dataIn_orig As String
dataIn_orig = dataIn
'BEGIN : create and set regular expression
Dim regEx
Set regEx = CreateObject("vbscript.regexp")
With regEx
.IgnoreCase = True
.MultiLine = False
.Pattern = "^[\s]*[·]+[\s]*"
.Global = True
End With
dataScrub = regEx.Replace(dataIn_orig, "")
End Function
由于一个未知的原因,替换正在替换·(不是一个句子,更像是一个子弹)但没有摆脱它后面的空格,所以我的最终结果是:
Identify & document site-related constraints and assumptions.
当我使用在线测试器(http://www.regular-expressions.info/javascriptexample.html)测试我的regEx时,它按预期工作。
我做错了什么?
答案 0 :(得分:1)
[\s]
匹配\
或s
。尝试使用没有方括号的普通旧\s
。
好吧,因为那仍然不起作用,最后\s*
可能是一个不情愿的匹配而不是贪婪的匹配。您应该可以通过在表达式的末尾添加\b
来解决此问题。 \b
表示单词边界(单词之前或之后)。试试这个:
^\s*[·]+\s*\b
答案 1 :(得分:1)
看起来已经接受了答案,但在您的函数中运行这行代码也会解决您的问题。
Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart