我能够编写一个代码,在字符串中找到6位数字并将其复制到下一列但是我想添加搜索,它也可以找到带有模式##-####
的数字并将其复制到下一列,以下示例:
有人能帮助我吗?
Sub Pull_6_Digit_Numbers_From_String()
Dim r As Range, i As Long
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\b\d{6}\b"
For Each r In Range("A1", Range("A" & Rows.Count).End(xlUp))
If .test(r.Value) Then
For i = 0 To .Execute(r.Value).Count - 1
r(, i + 2).Value = .Execute(r.Value)(i)
Next
End If
Next
End With
答案 0 :(得分:4)
您当前的模式\b\d{6}\b
与单词边界匹配,然后是6个连续数字,然后是单词边界。因此,它与123456
中的text 123456 here
匹配。要匹配12-3456
,您可以将模式拆分为2位和4位子模式,并插入可选的-
模式-?
。
\b\d{2}-?\d{4}\b
请参阅regex demo
-?
匹配1或0个连字符,\d{2}
与\d{4}
匹配,所有字词边界都匹配6位数。