2013-08-22 22 views
2

請原諒我,如果這看起來很基本,但我是新來的正則表達式,我似乎無法找到不是示例驅動的一般信息。轉換正則表達式與VBA一起使用

基本上,我想知道在轉換在因特網上使用的正則表達式與vba一起使用時要記住什麼。是不是像「哦,只要將非貪婪的操作符更改爲...」這樣簡單,還是涉及到我真正需要查找VBA特定表達式的級別,或者更好地編寫自己的表達式。

我的具體例子包括轉換這個電話號碼模式

^((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}$ 

但我真的更感興趣,無論是一般的方法,或其徒勞的肯定。謝謝!

+3

這真的取決於你的意思是「在互聯網上發現的表情」。儘管如此,.NET表達式(我相信VBA表達式是一個子集)是相當全面的,不像Javascript,它不支持lookbehind斷言。只要你沒有攜帶超複雜的Perl表達式,我認爲你不需要做任何修改。 (但要注意像多行模式這樣的修飾符;還要注意像Java這樣的一些語言,正則表達式字符串會被轉義,反斜槓會加倍等等) –

+1

要更具體地回答您的問題,上面的電話號碼錶達式將起作用正如預期的VBA。 –

+3

真正的答案可能是「寫得更好」,或者至少到了可以更好地理解網絡中找到的正則表達式中發生的事情的地步。下面是vbscript的一個很好的參考:http://msdn.microsoft.com/en-us/library/ms974570.aspx –

回答

1

跟進Cor_Blimey和funkwurm的評論,我已經在Office 2003和Office 2007 VBA中使用了VBScript 5.5正則表達式,取得了很好的成功。詳情here。對於比()和[]組更復雜的任何事情,我發現從頭開始編寫比試圖修改現有表達式更有效。

相關問題