【发布时间】:2011-08-12 03:25:02
【问题描述】:
我正在尝试创建一个可以匹配这个的正则表达式:
argument ::= define_scope [';' define_scope]*
define_scope ::= (['local'] | 'global') define_var
define_var ::= variable_name expression
variable_name ::= Name
所以,类似local varName something;;world foo bar;;local foobar bar。
我试过了:
((^|;;)?(local|world) (.+?) (.+?))+
但如果我在前面的示例中使用它,我会获得这些匹配项:
local varName s
;;world foo b
;;local foobar b
所以它只需要每个匹配的最后一个单词的第一个字母。
如果我从最后一个组中删除惰性匹配,它只匹配:
local varName something;;world foo bar;;local foobar bar
所以最后一组是something;;world foo bar;;local foobar bar。
解决这个问题的一些想法?
【问题讨论】:
-
请查看 Markdown 帮助:stackoverflow.com/editing-help