Quantcast
Channel: Ru.Board
Viewing all articles
Browse latest Browse all 892448

Сценарии для Windows (шапка и около-темные вопросы) (1632) / тема для обсуждения и обслуживания соответствующей шапки

$
0
0
LevT:
YuS_2

Цитата:
А можно и не избегать... особенно, если решение с ними упрощает задачу.


Для пишущего упрощает, для сиюминутного халявщика тоже упрощает.
А для тех, кто хочет научиться править чужие и в перспективе писать свои "сценарии для винды" - затрудняет (повышает порог вхождения)

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



Цитата:
в повершел оказывается возможно регэкспы комментировать прямо в коде


Ты видимо не ходил по моей ссылке, вытащу пример


Код:

# skip lines until we get to our sentinel line
{ $preamble -and $_ -eq "start end module name" } { $preamble = $false; continue }

#00007ff6`e9da0000 00007ff6`e9de3000 notepad (deferred)
#00007ffe`9ccb0000 00007ffe`9ce9d000 ntdll (pdb symbols) c:\symbols\ntdll.pdb\B8AD79538F2730FD9BACE36C9F9316A01\ntdll.pdb
'^([0-9a-f`]{17})\s([0-9a-f`]{17})\s+(\S+)\s+\(([^\)]+)\)\s*(.+)?' {
# see breakdown of the expression later in the post

.......
([0-9a-f`]{17})\s([0-9a-f`]{17})\s+(\S+)\s+\(([^\)]+)\)\s*(.+)?

# example input: 00007ffe`9ccb0000 00007ffe`9ce9d000 ntdll (pdb symbols) c:\symbols\ntdll.pdb\B8AD79538F2730FD9BACE36C9F9316A01\ntdll.pdb

(?x) # ignore pattern whitespace
^ # the beginning of the line
([0-9a-f`]{17}) # capture expression like 00007ff6`e9da0000 - any hex number or backtick, and exactly 17 of them
\s # a space
([0-9a-f`]{17}) # capture expression like 00007ff6`e9da0000 - any hex number or backtick, and exactly 17 of them
\s+ # skip any number of spaces
(\S+) # capture until we get a space - this would match the 'ntdll' part
\s+ # skip one or more spaces
\( # start parenthesis
([^\)]) # capture anything but end parenthesis
\) # end parenthesis
\s* # skip zero or more spaces
(.+)? # optionally capture any symbol file path

Viewing all articles
Browse latest Browse all 892448

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>