[Regex] Задаване на pattern
Здравейте,
някъде на drive C:\ кортува файл, който съдържа следната инфромация:
x: 4
y: -7
z: 12
x: 0
y: 2
z: -4
x: 0
y: 0
z: 0
Започва с х:4 и завършва с z: 0.
Как да създам шаблон в Regex, който разпознава горната структура?
Най-доброто ми неработещо предположение е:
string pattern = @"(\d)\n,(\d)\n,(\d)\n\n";
Nice one! :)
Regex ми се струва нещо, върху което трябва да се поексперементира. (още не съм сигурен как)
От
(x:\s*-?\d+\s+y:\s*-?\d+\s+z:\s*-?\d+\s*)+
мога ли да извикам само d-тата?
Ако ти трябват само данните, може да ползваш това:
x:\s*(-?\d+)\s+y:\s*(-?\d+)\s+z:\s*(-?\d+)\s*
Ще хване и отрицателните числа и ще ги запази в групи. Понеже не е ясно колко групи x,y,z ще има, трябва да ги извадиш всичките (примерно с Matches() от C#) и да ги итерираш впосдствие.
Иначе си прав, няма лесен начин да се научи регекс, то си е цял език. Трябва време и решаване на задачи, в които се ползва, за да се схванат някои неща в дълбочина.
Работи безпроблемно! Умна мисъл стои зад Regex :)
Приятна вечер & мерси за помощта!