Regex 将点的大多数语法转换为;x、 “是”;
我正在从事一个Haxe项目,该项目完成后,将允许用户通过简单的英语输入Haxe代码。输入示例:Regex 将点的大多数语法转换为;x、 “是”;,regex,haxe,Regex,Haxe,我正在从事一个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:
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”)
进行计算,得到100200
。基本上,这包括:
- 任意数量的空白
- 可选的一对括号或圆括号
- 可选的大写或小写
和x:
y:
- 但总是用逗号分隔两个数字
[\(\[]? *([xX]: *)?(\d+), *(?:[yY]: *)?(\d+) *[\)\]]?
但我想没有必要匹配整个模式。只需尝试匹配数字,如:
(\d+), *(?:[yY]: *)?(\d+)
“两个由逗号分隔的数字。”可使用
/.*(\d+).*,.*(\d+).*/
进行设置。X和Y可以颠倒吗?(例如,[y:100,x:100]
)。注意,我使用的是javascript正则表达式。不确定在哈克斯是否不同。我没想过要反转X和Y!这将是一个很好的选择。谢谢谢谢你的快速回复!如果我使用你的第二个建议,它不会像我需要的那样删除括号/括号。但是,在我将$1,$2
替换为$2,$4
之后,第一个功能非常好。