给出以下字符串:
4.2250 T 4.2400
如果我只想要第一个数字,并且由于它接近“T”而想要排除第二个数字,我将如何实现这个目标?
([^T]\d*\.\d*\s{0,3})
接近但不完美。
我正在使用vbscript.regexp
。
答案 0 :(得分:0)
我假设你在vb中有一些脚本功能。有几种方法,但最好的方法是坐在全球搜索循环中。当您在捕获组1上匹配匹配时,如果组1匹配,则取其值,如果不匹配,则继续,直到不再匹配。
# (?:T\s{0,5}\d*\.\d*)|(\d*\.\d*)
(?: # Consume a T <space> number, do not take it
T \s{0,5} \d* \. \d*
)
| # or,
( \d* \. \d* ) # (1), Consume a number, take this one
这可以缩短为
# (T\s{0,5})?(\d*\.\d*)
( T \s{0,5} )? # (1), A 'T' this number is not valid
( \d* \. \d* ) # (2), Consume a number, take this one
第2组始终包含一个数字。如果组1匹配,则该数字无效。