我有这样的字符串:
123 45-ABC 12 345 DEF
123 45-ABC 1345 DEF
123 45-ABC 345 DEF
我试图将这些与正则表达式进行模式匹配。我尝试过以下方法:
<[0-9 ]{4;6}-[A-Z]{3} [0-9]{3;5} DEF
<[0-9 ]{4;6}-[A-Z]{3} [0-9 ]{3;6} DEF
<[0-9 ]{4;6}-[A-Z]{3} [0-9]{2}[ ]?[0-9]{1;3} DEF
<[0-9 ]{4;6}-[A-Z]{3} [0-9]{2}[ \r\t\n\f]?[0-9]{1;3} DEF
但他们都没有为我工作......
任何提示?
答案 0 :(得分:0)
尝试此模式:&#34; \ b \ d * \ s * \ d * - [AZ] \ s [\ d] \ b \ s [AZ] * \ b&#34;
您可以在此处进行测试:http://rubular.com/r/UkvvrJ6tGL
您可能想要更改所有&#34; \ d&#34;用&#34; [0-9]&#34;和&#34; [A-Z]&#34;到&#34; [a-zA-Z]&#34;。您可能还想更改所有&#34; *&#34;用&#34; {3}&#34;或者&#34; {2,3}&#34;等等(&#34; \ s *&#34;除外),如有必要。
答案 1 :(得分:0)
您可以这样做:
Dim ResultString As String
Dim myMatches As MatchCollection
Dim myRegExp As RegExp
Set myRegExp = New RegExp
myRegExp.Pattern = "\d{3}[ ]\d{2}-[A-Z]{3}[ ]\d+(?:[ ]\d+)?[ ][A-Z]+"
Set myMatches = myRegExp.Execute(SubjectString)
If myMatches.Count >= 1 Then
ResultString = myMatches(0).Value
Else
ResultString = ""
End If
答案 2 :(得分:0)
由于缺少零合一和Office的古怪语法,请尝试:
<[0-9 ]{4,6}-[A-Z]{3}[0-9 ]{3,8}DEF>