我在将正则表达式从Python转换为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" '
但是当我在Flex中尝试它时:
var pattern:RegExp = /select(.*?)from/ig;
var match:Array = pattern.exec('SELECT "col", othercol,\n "othercol3" FROM doesn\'tmatter...');
trace(match);
match
总是以null结尾。我究竟做错了什么?我确信经验丰富的Flex程序员很明显......
答案 0 :(得分:0)
尝试其中一个Flex正则表达式测试器:
http://www.idsklijnsma.nl/regexps/
首先,你正在使用dotall等,所以你可能想知道Flex使用“s”标志。并且“x”标志忽略空格等。例如,
pattern:RegExp = /select.+?from/gis;
在我的例子中适合我。