2010-11-05 74 views
0

我遇到了将正则表达式从Python转换为Flex的问题。我的字符串是这样的:Flex正则表达式转换帮助

SELECT "col", othercol,\n "othercol3" FROM doesn'tmatter... 

Python的比赛就好了:

>>> re.search('select(.*?)from', 'SELECT "col", othercol,\n "othercol3" FROM doesn\'tmatter...', re.DOTALL|re.IGNORECASE).groups()[0] 

' "col", othercol,\n "othercol3" ' 

但是,当我尝试在软硬度:

var pattern:RegExp = /select(.*?)from/ig; 
var match:Array = pattern.exec('SELECT "col", othercol,\n "othercol3" FROM doesn\'tmatter...'); 
trace(match); 

match最终总是空。我究竟做错了什么?我敢肯定,这显然对经验丰富的Flex程序员......

+0

也许这个实现默认是非贪婪的,你必须忽略'?'? – thejh 2010-11-06 00:10:15

回答

0

尝试很多Flex正则表达式测试人员在那里:

http://www.idsklijnsma.nl/regexps/

一件事,你使用DOTALL等。所以你可能想知道Flex使用“s”标志。而“X”标志忽略空格等。例如,

pattern:RegExp = /select.+?from/gis;

作品我对你的例子。

+0

谢谢,dotall标志是我需要的。 – Kevin 2010-11-06 00:28:11