2016-09-22 65 views
-2

我想将电话号码识别为9个连续的数字,可以用空格,不分隔的空格等分隔开regEx“(\ s * \ d \ s *){9 }”电话号码RegEx不适用于某些字符串

我运行VBA宏(JS正则表达式),这里是它做工精细与上述正则表达式的例子字符串:

UL认证。 27 Grudnia 16,电话。 21 287 31 61,传真61 286 69 60 -

ul。 Wrzosowa 110/120/222,kom。 692 601 428

而且这里是不是在VBA检测到的电话号码的例子,但由正则表达式的JS在线工具检测:

人。 Mazowieckiego 63,kom。 622 769 694 -

检测到的字符串和没有的字符串具有相同的结构,所以我不知道为什么VBA在某些字符串中检测不到电话号码。

+2

你的正则表达式为我工作,有什么不工作?工作示例:[regex101](https://regex101.com/r/lA7bA0/1) –

+0

我找不到(很快)关于'VBA'正则表达式的很多信息,并且因为它是microslop,所以你不会拥有所有的功能一个强大和成熟的正则表达式引擎将具有。按照[文档](https://msdn.microsoft.com/en-us/library/6wzad2b2(v = VS.85).aspx)来保存您的头部并将其转换为microslop开发人员;) – gwillie

+0

[ (\ s * \ d){9}'](https://regex101.com/r/jQ9jT5/2)与'al'很好地结合在一起。 Mazowieckiego 63,kom。 622 769 694 -'(działabardzo dobrze)。 –

回答

0

它出来,VBA改变了一些字符串查找 - 用非破坏性chr(160)替换空白 - chr(32)。

从字符串中删除chr(160)以查找问题。 另外我会尝试找到RegEx,它可以让不间断的空格,因为\ s *不这样做,至少在VBA中。

相关问题