2015-04-01 114 views
0

我正在使用VBA,并开始使用RegEX库查找数字和/或英文文本,到目前为止我没有任何问题,但现在我需要在包含数字和希伯来字母混合的文本字段(具有多种可能格式的地址)上使用它。如何使用vba的正则表达式为非英文字母创建正则表达式5.5

我已经设法以“哑”的方式使用它,我可以找到文字和一些短的模式(例如,找到任何组合,这意味着一个邮政信箱 - 两个字母与任何非字母非数字他们),但我不能使用类似\w的英文 - 这会让我的生活变得更好。

有无论如何创建“自定义”的正则表达式,并将它们保存为变量?例如,我想使这个(一个正则表达式的一个希伯来文):

regEx.Pattern = "(א|ב|ג|ד|ה|ו|ז|ח|ט|י|כ|ל|מ|נ|ס|ע|פ|צ|ק|ר|ש|ת|ם|ן|ף|ץ)+" 

,并保存为例如甚至\hw(简称希伯来文),因为我需要几种类型的模式和几种可能的格式进行识别,这将为我节省很多挫折(因为IDE已经没有与希伯来语字母的最佳交互)。

回答

2

您可以创建自己的字符类,并在代码中使用它:

Dim hw As String 
hw = "[אבגדהוזחטיכלמנסעפצקרשתםןףץ]+" 
regEx.Pattern = "^" + hw + "$" ' to match an isolated Hebrew word 

regEx.Pattern = hw + " " + hw ' to match two Hebrew words separated with a space 

但是,你不能“名”是解决诸如\hw

+1

我更新了答案。顺便说一句,你应该注意在VBA中的单词边界,你总是可以依靠锚点('^'和'$')以及单词边界('\ b')。此外,请访问http://www.regular-expressions.info/vb.html和http://www.regular-expressions.info/vbscript.html以获取有关VBA正则表达式的更多详细信息。 – 2015-04-01 12:37:32