Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 将点的大多数语法转换为;x、 “是”;_Regex_Haxe - Fatal编程技术网

Regex 将点的大多数语法转换为;x、 “是”;

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:

我正在从事一个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”)
进行计算,得到
100200
。基本上,这包括:

  • 任意数量的空白
  • 可选的一对括号或圆括号
  • 可选的大写或小写
    x:
    y:

  • 但总是用逗号分隔两个数字
我已经用一些正则表达式或其他正则表达式纠正了这些特性中的每一个,并且在同一个正则表达式中除了“x://”y:“之外,我拥有了所有的特性。但是因为我对正则表达式没有太多的经验,所以我不知道如何同时评估所有这些条件。这在正则表达式的范围内是可能的吗?如果是的话,我该怎么做

提前谢谢

试试看:

[\(\[]? *([xX]: *)?(\d+), *(?:[yY]: *)?(\d+) *[\)\]]?
但我想没有必要匹配整个模式。只需尝试匹配数字,如:

(\d+), *(?:[yY]: *)?(\d+)

“两个由逗号分隔的数字。”可使用
/.*(\d+).*,.*(\d+).*/
进行设置。X和Y可以颠倒吗?(例如,
[y:100,x:100]
)。注意,我使用的是javascript正则表达式。不确定在哈克斯是否不同。我没想过要反转X和Y!这将是一个很好的选择。谢谢谢谢你的快速回复!如果我使用你的第二个建议,它不会像我需要的那样删除括号/括号。但是,在我将
$1,$2
替换为
$2,$4
之后,第一个功能非常好。