Regex для форматирования XAML - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь создать PowerShell CmdLet, который может анализировать и корректно переформатировать кусок XAML или любого другого языка разметки.

До сих пор мне приходилось создавать ассортимент CmdLet, чтобы я мог может получить правильную информацию для вставки в эту вещь (для отступов, количества, элементов, дочерних элементов и т. д. c, и т. д.)

Я пытаюсь собрать ВСЕ свойства и значения в наборе XAML / HTML, et c, а затем, когда у меня есть длины всех этих переменных, я могу затем начать разбивать их на части и правильно отформатировать, чтобы они все выводили вниз прямая линия. Это может не иметь большого смысла, как я это описываю? Итак, вот пример.

<Window                                    xmlns = 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'
                                         xmlns:x = 'http://schemas.microsoft.com/winfx/2006/xaml'
                                           Title = 'Window Title'
                                          Height = '600'
                                       MinHeight = '600'
                                           Width = '800'
                                        MinWidth = '800'
                                     BorderBrush = 'Black'
                                      ResizeMode = 'CanResize'
                             HorizontalAlignment = 'Center'
                           WindowStartupLocation = 'CenterScreen'>

Причина, по которой я пытаюсь это построить, заключается в том, чтобы я мог программно сохранить инструкции на меньшем месте. Итак, вместо из ... с колеблющимися числами для каждой строки и элемента и конечным результатом, похожим на это ...

<Window xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
xmlns:x = 'http://schemas.microsoft.com/winfx/2006/xaml' Title = 'Window Title' Height = '600' 
MinHeight = '600' Width = '800' MinWidth = '800' BorderBrush = 'Black' ResizeMode = 'CanResize'
HorizontalAlignment = 'Center' WindowStartupLocation = 'CenterScreen'>

... У меня тогда есть набор инструкций это может векторизовать содержимое XAML, так что оно имеет шаблон и меньше случайности. Конечно, счетчик строк может быть немного расширен, но нет необходимости беспокоиться об этом, если все, что он делает, это расширение в ОЗУ. Какой смысл в этом ...

Во всяком случае, код, с которым у меня возникают проблемы, по сути является способом сохранить расстояние между цитируемыми объектами. Я чувствую, что бьюсь головой о стену, пытаясь заставить это работать правильно, когда я знаю, что это вопрос Regex ...

Я разместил код, о котором я говорю, по этой ссылке , https://github.com/secure-digits-plus-llc/FightingEntropy/blob/master/Format-XAML.ps1 Строки 43-147

Это блок сценария, и для тестирования с ним требуется строка Xaml Here.

Любые предложения приветствуются. Я не большой поклонник Regex, я понимаю некоторые основы этого, но я не настолько хорош с ним.

-M C

1 Ответ

0 голосов
/ 12 марта 2020

Нашел ответ, который искал.

Не самый красноречивый способ решения возникшей у меня проблемы, но он работает.

"(? <= \ '). + ? (? = \ ') "</p>

Когда строки разделены, и вы хотите сохранить интервал в кавычках, тогда вам нужно что-то вроде этого.

Я пытался перебрать a делать l oop, пока массив / строка не содержали (2) одинарных кавычек, но то, что происходило, было ... 'о. Я думал, что вы хотите сопоставить adbhjikvgrfe с 21345rfs.

Нет регулярных выражений. Не искал, чтобы соответствовать этому. вздох .

Затем он делал интервал между кавычками. вздох

Я должен сказать ... кто-нибудь, кто действительно пишет хорошее программирование ...? Хорошо, я снимаю шляпу перед вами, сэр / мэм ... потому что ... это разочаровывающая работа. Наверняка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...