我希望匹配正则表达式模式。我知道如果在单词的开头有任何符号字符(除了_),我的代码将无效。如何允许它匹配以任何符号开头的单词? 到目前为止,这是我的代码:
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "(\nC_PIN\s)((\b[^\s]+\b\s){3})(\b[^\s]+\b\s)(\b[^\s]+\b\s)(\b\d\b\s)"
.Global = True
Set objFil = objFso.OpenTextFile(infilename)
strAll = objFil.ReadAll
Set objFil1 = objFso.createtextfile(outfilename)
strAll = .Replace(strAll, "$1$2$4 $5 $6 ")
End With
objFil.Close
objFil2.Close
答案 0 :(得分:0)
\b[^\s]+\b
没有意义,导致\b is an anchor搜索单词的开头或结尾。而且这个词总是[a-zA-Z0-9 _]。
我认为你只能使用:
[^a-zA-Z0-9_!"§$%&...][a-zA-Z0-9_!"§$%&...]
你应该插入你允许单词的所有符号字符(在你的解释中)。
答案 1 :(得分:-1)
我设法得到了正确的代码。用于匹配以符号开头的单词的代码是(或负数);
设置objFso = CreateObject(“Scripting.FileSystemObject”)
设置objRegex = CreateObject(“vbscript.regexp”)
使用objRegex
.Pattern =“(\ nC_PIN \ s)(\ b [^ \ s] + \ b \ s)([\ S] + \ b \ s)([\ S] + \ b \ s)( \ b [^ \ S] + \ b \ S)(\ b [^ \ S] + \ b \ S)(\ b \ d \ b \ S)“
.Global = True 设置objFil = objFso.OpenTextFile(infilename)
strAll = objFil.ReadAll Set objFil1 = objFso.createtextfile(outfilename) strAll = .Replace(strAll, "$1$2$4 $5 $6 ") End With
objFil.Close
objFil2.Close