如何使用 vba 的正则表达式 5.5 为非英文字母创建正则表达式

how to create a regex for non-english letters with vba's regex 5.5

我正在使用 VBA,并开始使用 RegEX 库来查找数字 and/or 英文文本到目前为止我没有遇到任何问题,但现在我需要在文本字段上使用它包含数字和希伯来字母的组合(具有多种可能格式的地址)。

我设法以 "dumb" 的方式使用它,我可以找到文字和一些短模式(例如,找到任何表示邮政信箱的组合 - 两个字母与任何非字母的组合它们之间不是数字),但我不能用 \w 之类的东西来表示英语——这会让我的生活变得更好。

是否可以创建 "custom" 正则表达式并将它们保存为变量?例如我想做这个(单个希伯来语单词的正则表达式):

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

并将其保存为 甚至 \hw(希伯来语单词的缩写),因为我需要制作几种类型的模式和几种可能的格式来识别,它会让我省去很多挫折(因为 IDE 与希伯来字母的互动已经不是很好了)。

您可以创建自己的角色 class,并在您的代码中使用它:

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

但是,您不能 "name" 它像 \hw 这样的地址。