2012-09-04 21 views
3

如何將動態變量包含到正則表達式對象中?在這種情況下,我希望正則表達式匹配「一隻鳥」或「一個biRD」(如果「鳥」是關鍵字)。但是,如果「鳥」獨立存在,它就不應該匹配。我還有一個後續問題(我希望問的不是太多): 我該怎麼做上面的確切的事情,但只有在關鍵字不是前面加'a '(我相信這涉及到^或!的使用,但我似乎無法找到任何明確的文檔用於我的具體要求)。AS3將動態變量包含到正則表達式對象中

在我的第二個問題測試用例的情況是這樣的:

WORKS

abird 
bird 
bbbbirdddd 

不起作用

a bird 
a birdddd 

任何幫助將不勝感激!

+0

好。我更新了該帖子以包含測試用例。 –

回答

1

的ActionScript 3.0支持lookbehinds和不區分大小寫的改性劑:

/(?<=a\s+)bird/i 

在這裏看到如何構建從可變正則表達式的更多信息:Using a Variable in an AS3, Regexp

對於你的問題的第二部分:

/(?<!a\s+)bird/i 
+0

如果不是「一個」,我想要一個更長的短語?如「一個藍色」? –

+0

lookbehind帶有任何正則表達式原子!所以,你甚至可以這樣做:'/(?<!一個藍色的大鳥)/我''。 (用''s +''替換空格以實現whitepsace的靈活性。)(我記得聽說有些正則表達式引擎只允許固定寬度的lookbehinds;在這種情況下,你可能無法在lookbehind內使用量詞。這是AS3的情況。) –

+0

如果「bird」是一個動態變量,該怎麼辦? (鳥只是一個關鍵詞的例子) –