Я работаю над проектом Haxe, который, по завершении, позволит пользователям вводить код в Haxe, набрав простой английский. Пример ввод:Преобразование большинства синтаксисов для точек в «x, y»
Create a number called "Foo".
Set Foo to 100.
Print Foo to the console.
Сейчас я пытаюсь использовать Ерегли (также известные как 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
должны быть оценены с помощью Regex объекта r
с r.replace(a, "$1,$2")
, чтобы получить 100,200
. В основном, это включает в себя:
- Любое количество пробелов
- Необязательное пара скобок или круглые скобки
- Необязательный или прописных строчными
x:
иy:
- но всегда два числа, разделенных запятой ,
Я получил каждую из этих функций правильно с некоторым Regex или другим, и у меня было все, кроме «x:»/«y:» в том же самом. Но поскольку у меня нет большого опыта работы с Regex, я не могу понять, как оценить все эти условия одновременно. Возможно ли это в рамках Regex, и если да, то как я мог это сделать?
Заранее благодарен!
«два номера, разделенные запятой». Это можно сделать, используя '/.*? (\ D +). *,. *? (\ D +). * /'. Могут ли X и Y быть отменены? (например, '[y: 100, x: 100]'). Обратите внимание, что я использую регулярное выражение javascript. Не уверен, отличается ли он от haxe. –
Я не думал об обратном X и Y! Это будет очень хороший вариант для включения. Благодаря! – ETHproductions