我正面临着正则表达式的问题。
我正在尝试获取未跟随厘米或英寸的数字,如下面的示例所示:
30.5 XXL Height 175.5 cm
- 这应该只返回30.5,因为175.5附加了“cm”34 inches XL 54
- 这应该只返回54,因为34英寸我怎么能用正则表达式做到这一点?
使用负向前瞻(?!)
。
正则表达式:\d+(?:\.\d+)?(?=(?: (?!cm|inches)|$))
细节:
(?=)
积极前瞻(?:)
非捕获组(?!)
否定前瞻|
或$
在一条线的末尾断言位置VBA代码:
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.Pattern = "\d+(?:\.\d+)?(?=(?: (?!cm|inches)|$))"
For Each Match In re.Execute("30.5 XXL Height 175.5 cm")
Debug.Print (Match)
Next
输出:
30.5