\d+\.?\d*|\.\d+(?=\s*ch)
应用于“ sta.23.5 .1单词67.89 ch”,首先捕获23.5,因为它匹配 \d+\.?\d*
或“ |”如果您想这样思考,则具有最高优势,将图案分为两种可能的匹配: \d+\.?\d*
和 \.\d+(?=\s*ch)
如果你想防止 \d+\.?d*
从匹配23.5开始,您必须添加额外的条件,例如在其之前需要一个空间字符,并使用捕获括号将数字作为subbatch: \s(\d+\.?\d*)
您可以与此模式匹配, \s(\d+\.?\d*)|\.\d+(?=\s*ch)
, ,但请记住,如果上半场匹配,您将查看实际值的subsatches。
这里真正的问题是,VBScript的Regexp类不支持BoeBehind,而只是LookAhead。