到目前为止,我有这个......
search_str = "-X made"
regEx.Pattern = "(\S*)[^\s*]"
regEx.IgnoreCase = True
regEx.Global = True
If regEx.test(search_str) Then
Set matches = regEx.Execute(search_str)
extractStr = matches(0).SubMatches(0)
end if
我希望extractStr有-X(第一个空格之前的任何东西),但我没有得到它。
答案 0 :(得分:3)
模式字符串"(\S*)[^\s*]"
\S
和[^\s]
是一回事[foo*]
表示匹配f
,o
或*
你可能想要这样的东西
regEx.Pattern = "(\S+)(?=\s)"
这意味着
(\S+)
贪婪地匹配一个或多个非空格(并记住匹配),直到... (?=\s)
下一个字符是空白请注意," "
之类的字符串不匹配,如果您希望匹配,请使用零或更多*
代替 - 或者更多+
如果您希望始终匹配,并且您希望**始终从 String 的开头开始,则 RegExp 会变成类似此
regEx.Pattern = "^(\S*)(?=\s|$)"
其中
^
匹配字符串的开头foo|$
匹配foo
或字符串