Я не думаю, что MySQL будет принимать объекты PowerShell, переданные ему по каналу - хотя, как говорит Стефан, вы можете использовать Get-Content и направить его к следующей команде.
Проверьте вопрос переполнения стека Готов ли PowerShell заменить мою оболочку Cygwin в Windows? по причинам, по которым они не скопировали оболочки Unix.
Без них можно было бы легко обойтись, но нужно (ИМХО) знать основы по двум причинам.
1) Может наступить время, когда RegEx станет лучшим решением проблемы (см. Изображение ниже)
2) Когда вы видите Regex в чужом коде, оно не должно быть на 100% мистическим.
preg_match('/summarycount">.*?([,\d]+)<\/div>.*?Reputation/s', $page, $rep);
Этот код достаточно прост, но если вы не знаете RegEx, то все, что указано в первом параметре, может быть марсианским. язык. Используемый здесь RegEx на самом деле довольно прост, если вы изучите основы, и чтобы получить это, перейдите на http://www.regular-expressions.info/ , у них есть МНОГО информации о RegEx и его различные применения на разных платформах / языках, у них также есть отличное руководство для начала. После этого ознакомьтесь с RegexBuddy , он может помочь вам создавать регулярные выражения, и пока вы их создаете, если вы посмотрите, что он делает, он может помочь вам опереться, это были самые лучшие $ 39,95, которые я когда-либо тратил.
Не больше, чем, скажем, знание HTML или возможность использовать реляционную базу данных. Строго говоря, нет, они не являются обязательным требованием для программирования - они могут быть важными и фундаментальными в одних работах, но неуместными в других. Вы вряд ли будете использовать регулярные выражения (или HTML или SQL, если на то пошло) при написании драйвера устройства для нового чипа Ethernet. В своей области я иногда использую регулярные выражения в производственном коде, гораздо чаще в специальных сценариях для обработки отчетов и т. Д.
Если вы разрабатываете новый продукт, я бы посоветовал вам избегать их или, по крайней мере, использовать их экономно и разумно.
Если вы поддерживаете продукт, который уже использует регулярные выражения, у вас нет выбора.
Это помогает, по крайней мере, уметь распознавать регулярное выражение, поэтому, если вы столкнетесь с особенно запутанным фрагментом кода, вы знаете правильный поиск срок, чтобы найти справочную карту.
Определенно нет, я (как и многие люди) годами программировал, не трогая их. Тем не менее, как только вы познакомитесь с ними, вы начнете понимать, где они могли быть полезны в прошлом: -)
Я бы сказал - просто прочитайте основы, чтобы вы знали, что такое RegExes и что вы можете делать с ними, то, если вы когда-нибудь обнаружите, что они могут быть полезны, вы можете получить учебный / справочный веб-сайт, например http://www.regular-expressions.info/ , и сразу же приступить к работе.
Понимание регулярных выражений не является обязательным. Однако это эффективный инструмент для обработки текста. Если вы работаете над проектами, которые манипулируют текстом, вы в конечном итоге столкнетесь с ними.
Регулярные выражения сопряжены с множеством проблем, независимо от того, используете ли вы их или просто поддерживаете код, в котором они есть. Имейте в виду, что существует множество вариантов синтаксиса. Разные библиотеки и языки часто имеют несколько разные правила синтаксиса. Регулярные выражения, по мере того, как они становятся более сложными, можно легко перейти от простого инструмента сопоставления с образцом к волшебству, писать только код, который нелегко понять. И, как и большинство инструментов обработки текста, их часто бывает сложно устранить или изменить (например, у вас есть угловой вариант, который не соответствует функциям инструмента).
Как и в случае со всем кодом синтаксического анализа, я рекомендую много единиц тесты. В частности, обратите внимание на краевые условия, повторяющиеся текстовые шаблоны и необычный ввод.
Simply, no. It all depends on what your program is set out to achieve.
Of course knowing what a RegExp is and a basic understanding of how they work can be useful in the future.
Я согласен с другими, что это, вероятно, не обязательно, но очень полезно иметь хотя бы базовое понимание. У меня в кубе есть шпаргалка по RegEx, которая мне очень помогает. http://regexlib.com/CheatSheet.aspx
Regular Expressions is a powerful pattern matching language. And it is not limited to text strings. But as always, your code, your call.
Нет.
В зависимости от того, чего вы пытаетесь достичь, Regex может быть полезным. Но я бы рискнул, что 80% или более программистов никогда не используют Regex, около 15% или около того только изредка (и им приходится гуглить), и лишь небольшой% оставшейся части фактически употреблял Regex Ninjas.
Я обнаружил ] Regexr очень хорош для тех редких случаев, когда я использую Regex.
Кроме того, кто-то упомянет определенную цитату из jwz в течение следующей минуты или около того ...
Не должно быть. Хотя бытует мнение, что хороший программист должен это знать, я бы так не сказал. Когда придет время и он вам понадобится, вы просто воспользуетесь им. В любом случае, дайте ему шесть месяцев, чтобы не использовать его, и вы не вспомните никаких вариантов выражения.
Как и все фактическое в программировании, вы изучаете его, вы забываете его, вы снова изучаете его.
В зависимости от вашей области есть определенные проблемы, которые поддаются регулярным выражениям - или, скорее, наоборот: решение / не / использование регулярных выражений чрезвычайно неуклюже. На ум приходит проверка электронной почты / проверка URL / минимальная надежность пароля / анализ даты.
Регулярные выражения важны, по крайней мере, для изучения, если не использовать.
Во-первых, вы должны уметь читать и понимать чужой код регулярных выражений.
Во-вторых, базовые регулярные выражения выражения соответствуют конечным автоматам (по теореме Клини), что делает их фундаментально важными для разработки алгоритмов.
На самом деле, существует юбка из шпаргалки для девочек
http: //store.xkcd .com / xkcd / # RegexCheatSkirt
Если вы девушка, это может быть фантастической возможностью для обучения.
Нет ... и Да,
Это очень похоже на один из тех вопросов «Следует ли мне выучить C». Никакие регулярные выражения никогда не являются единственным способом что-то сделать. Но они часто являются полезной абстракцией, которая упрощает код и может (я действительно думаю) даже сделать его более читабельным. Может быть, потому, что мне нравится Джеффа Фридла Mastering Regular Expressions , или, может быть, потому, что я выделяю на работе Perl. Но по какой-то причине я предпочитаю регулярные выражения. Теперь мне кажется, что использовать регулярное выражение проще, чем большинство других методов обработки строк.
Понимание хотя бы на самом низком уровне того, что регулярные выражения / могут делать, очень важно. Если вы понимаете концепции, лежащие в основе NFA, тогда вы поймете другие проблемы намного лучше.
Что касается начала хорошего в регулярных выражениях, я бы сказал, что это не обязательно, но действительно ценно. Дело в том, что каждый механизм регулярных выражений отличается, поэтому, даже если вы освоили один из них, вы не сможете быстро сделать это в другом месте.
I guess it is not a must but they will ease your life and save you so much time.
If you dont know how to use regular expressions you dont know what you are missing. But just looking at a person using them to complete a task makes you feel that it is a skill you should definitely have.
Я бы сказал нет, они не обязательны. Вы можете быть прекрасным программистом, даже не зная их.
Я считаю, что использую регулярные выражения в основном для разовых задач по манипулированию данными, а не для фактического добавления кода приложения. Они могут быть удобны для проверки входных данных, но в наши дни ваши элементы управления и так часто делают это за вас.
Да. Вы можете обойтись и без них, но вам действительно следует изучить хотя бы основы, поскольку большинство вычислительных задач могут их использовать. Вы избавите себя от боли и нервотрепки в долгосрочной перспективе. Создавать регулярные выражения намного проще, чем вы думаете, когда вы преодолеете начальную стадию «wtf».
Let me put it this way, if you have regular expressions in your toolkit, you'll save yourself a lot of time and energy. If you don't have them, you won't know what you're missing out on so you'll still be happy.
As a web developer, I use them very often (input validation, extracting data from a site etc).
EDIT: I realized it might help you to look at some common problems that regex is used for by looking at the regex tag right here on stackoverflow.
Вовсе нет. Все, что вы можете делать с регулярными выражениями, вполне возможно обойтись и без них.
Однако это мощная система сопоставления с образцом, поэтому некоторые вещи, которые довольно легко выполнить с помощью простого образца регулярного выражения, требуют большого количества кода. без него.
Например, этому:
s = Regex.Replace(s, "[bcdfghjklmnpqrstvwxz]", "$1o$1");
нужно немного больше кода, чтобы обходиться без регулярного выражения:
StringBuilder b = new StringBuilder();
foreach (char c in s) {
if ("bcdfghjklmnpqrstvwxz".IndexOf(c) != -1) {
b.Append(c).Append('o').Append(c);
} else {
b.Append(c);
}
}
s = b.ToString();
Или, если вы не так опытны как программист, вы можете легко создать что-то, что представляет собой еще больше кода и работает ужасно плохо:
string temp = "";
for (int i = 0; i < s.Length; i++ ) {
if (
s[i] == 'b' || s[i] == 'c' || s[i] == 'd' ||
s[i] == 'f' || s[i] == 'g' || s[i] == 'h' ||
s[i] == 'j' || s[i] == 'k' || s[i] == 'l' ||
s[i] == 'm' || s[i] == 'n' || s[i] == 'p' ||
s[i] == 'q' || s[i] == 'r' || s[i] == 's' ||
s[i] == 't' || s[i] == 'v' || s[i] == 'w' ||
s[i] == 'x' || s[i] == 'z'
) {
temp += s.Substring(i, 1);
temp += "o";
temp += s.Substring(i, 1);
} else {
temp += s.Substring(i, 1);
}
}
s = temp;
Я в этом сомневаюсь. Сложно обработать и очистить финансовую информацию. Обычно у меня уходит целый день на очистку ценовых данных, которые я собираю в Интернете всякий раз, когда я обновляю свои данные на chartgame.com
что вы бы предпочли, хорошего программиста, который - время от времени - должен будет вручную найти / заменить некоторый набор похожих строк в тысячах исходных файлов и потребует часов или дней, чтобы сделать это, или хорошего программиста, который - один раз в какое-то время - тратит пять или даже десять минут на создание регулярного выражения, чтобы выполнить то же самое, что и за время, необходимое им, чтобы пойти выпить кофе? Фактически, я на самом деле использовал регулярное выражение при создании этого сообщения. Я изначально перечислил языки, которые его поддерживают, в прозе через запятую. Затем я переосмыслил его и изменил формат на маркированный список, выполнив поиск выражения (\ w +),
и заменив его на \ n * $ 1
в JEdit. И чем больше опыта вы получите с ними,
If you care about developing a career as a software engineer, then yes. I hire software engineers and if they don't know the basics of using regular expressions, or have never heard of them, then I wonder how much experience they actually have across the entire spectrum of programming techniques. What else don't they know?
Most of the comments above say 'no, you can solve the problem in other ways' and they also mostly say the alternatives are more code and take longer to write... now think maintainability and how easy this bespoke code would be to change... Use a regular expression - then it's just a single line of code.
Нет. Вы можете годами заниматься программированием, не касаясь регулярных выражений. Конечно, это будет означать, что в некоторых случаях, когда кто-то, кто знает RE: s, будет их использовать, вы сделаете что-то еще. Всегда существует более одного способа решения конкретной проблемы, и регулярные выражения - это всего лишь один из способов (очень эффективный и, возможно, поэтому популярный) выражения шаблонов.
Нет. Я сам плохо разбираюсь в регулярных выражениях, и все же я плохой программист. Подождите. Что?
О более серьезном замечании: я не знаю регулярные выражения, но мне они почти не нужны. Если мне это действительно нужно, например, когда мне нужно проверить вводимые пользователем данные, как упоминает Дейв, я спрашиваю коллегу.
Есть , так что много вещей, которые полезно знать / изучать как программист, но Осмелюсь сказать, что регулярные выражения далеко не в верхней части этого списка.
На самом деле, я считаю, что это необходимо ...
Например, я искал, почему часть нашего видео на YouTube не работает ... и оказалось ссылки на эти видео:
http://ca.youtube.com/v/raINk2Ii1A4 (не фактический URL, просто в качестве примера)
вместо
http: // www. youtube.com/v/raINk2Ii1A4
Другой программист ранее использовал "substr ()" для извлечения идентификатора видео YouTube, и из-за части ca.youtube.com идентификатор был извлечен неправильно.
Так что, на мой взгляд, , регулярные выражения очень важны, и без них скрытые ошибки могут возникать чаще, чем обычно.
Но на самом деле я встречал трех разработчиков раньше, один был очень хорошим веб-приложением разработчик, один имел степень магистра наук в престижном ведущем университете Кремниевой долины , а один был высокопоставленным магистром, и оказалось, что все они не знали обычного выражения. Для меня это было немного удивительно.
Одним словом, нет.
Но они, безусловно, могут быть правильным инструментом для правильной работы, и их стоит изучить для тех операций сопоставления строк, где они работают лучше всего. Однако то, что у вас есть хороший большой молоток, не означает, что вы должны использовать его, чтобы расколоть каждый орех.
Наверное, нет. Но их действительно легко выучить . По крайней мере, основы (то, что делают все движки регулярных выражений) быстро изучаются. Я узнал об этом в окне чата от другого парня примерно за 30 минут ...
Что ж, в теоретической области информатики это очень сильное и полезное «оборудование», так как с его помощью вы можете определять регулярные языки и отождествлять их с NFA или даже DFA, поэтому докажите какую-нибудь сложную теорему в теории вычислений или конечном автомате и области формальных языков. В практическом программировании это также очень полезно, поскольку с его помощью вы можете относительно легко выполнять сложные операции со строками.
По крайней мере, необходимо знать, что регулярные выражения существуют и для чего они могут использоваться. В противном случае во многих ситуациях вы рискуете изобретать велосипед. Если вы знаете об их существовании, вы можете подробно рассказать о них, когда вам нужно их применить. Кстати, теория регулярных выражений довольно интересна: -)
Есть замечательная книга, написанная Джеффри Фридлом под названием Освоение регулярных выражений . Это дало мне понимание и было очень приятно читать.
Несмотря на то, что я не так часто использую регулярные выражения, они недавно пригодились:
Вход : какой-то файл словаря CSV в некотором свободном формате, с несколькими переводами, высказываниями и т. Д.
Выход : Хороший JSON.
Первая мысль : Напишите небольшую грамматику для анализа всех возможных полей и значений.
Вторая попытка : Я использовал простую грамматику, улавливающую основные поля, а затем передал остальное в процедуру, который применял некоторые регулярные выражения. Это было быстро, концептуально проще, чем полная грамматика, и интересно писать.
Резюме : Регулярные выражения сэкономили мне часы и фактически помогли мне увидеть особые случаи в данных, а также то, как и где они появляются.
Стоит ли их изучать? Да.
Обязательно? Нет, но я почти не знаю никого в этой области, кто не знаком с ними.
Трудно учиться? Нет вообще.
Нет, у вас всегда есть два других варианта подходящих требований.
Спросите друга, который знает регулярные выражения.
Опубликуйте проблему на SO.