我正在开发一个Haxe项目,该项目完成后,允许用户通过输入普通英语在Haxe中编码。示例输入:
Create a number called "Foo".
Set Foo to 100.
Print Foo to the console.
现在,我尝试使用EReg(也称为RegExp或Regex)对象将大多数常用点语法转换为x,y
,这是主转换函数可以轻松理解的内容。以下是我想要考虑的所有语法功能,以某种组合或其他方式:
100,200
100, 200
(100,200)
[100, 200]
x:100,y:200
(X:100, Y:200)
[ X: 100, y: 200 ]
这些字符串a
中的每一个都应由具有r
的正则表达式对象r.replace(a, "$1,$2")
进行评估,以获得100,200
。基本上,这包括:
x:
和y:
我已经使用一些Regex或其他正确的方法获得了这些功能中的每一个,除了" x:" /" y:"在同一个。但由于我对Regex没有多少经验,我无法弄清楚如何同时评估所有这些条件。这是否可以在Regex的范围内,如果是这样,我怎么能这样做?
提前致谢!
答案 0 :(得分:2)
试试:
[\(\[]? *([xX]: *)?(\d+), *(?:[yY]: *)?(\d+) *[\)\]]?
但我认为与整个模式相匹配并不是必要的。只需尝试匹配数字,例如:
(\d+), *(?:[yY]: *)?(\d+)