Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что такое хорошие регулярные выражения?
Я работал в течение 5 лет в основном в java настольных приложениях, получающих доступ к Oracle базам данных, и я никогда не использовал регулярные выражения. Теперь я ввожу Stack Overflow и вижу много вопросов о них; я чувствую, что что-то пропустил.
Для чего вы используете регулярные выражения?
P.S. извините за мой плохой английский
Регулярные выражения (или Regex) используются для сопоставления шаблонов в строках. Таким образом, вы можете извлечь все адреса email из фрагмента текста, потому что он следует определенному шаблону.
В некоторых случаях регулярные выражения заключаются в прямые косые черты, а после второй косой черты помещаются такие параметры, как нечувствительность к регистру. Вот хороший пример :)
/(bb|[^b]{2})/i
Произносимая она может читать "2 be or not 2 be".
Первая часть - это (скобки), они разделены символом pipe | , который приравнивается к оператору or, так что (a|b) соответствует "a" или "b". Первая половина участка трубопровода соответствует "bb". Название второй половины я не знаю, но это квадратные скобки, они соответствуют всему, что не является "b", поэтому там есть символ крыши thingie (технический термин). Волнистые скобки соответствуют количеству вещей перед ними, в этом случае два символа, которые не являются "b".
После второго / - это "i", что делает его нечувствительным к регистру. Использование начальной и конечной косых черт зависит от конкретной среды, иногда вы это делаете, а иногда нет.
Две ссылки, которые, я думаю, вы найдете удобными для этого:
Рассмотрим пример в Ruby:
puts "Matched!" unless /\d{3}-\d{4}/.match("555-1234").nil?
puts "Didn't match!" if /\d{3}-\d{4}/.match("Not phone number").nil?
"/\d{3}-\d{4}/ " - это регулярное выражение, и, как вы можете видеть, это VERY краткий способ найти совпадение в строке.
Кроме того, используя группы, вы можете извлечь информацию, как таковую:
match = /([^@]*)@(.*)/.match("myaddress@domain.com")
name = match[1]
domain = match[2]
Здесь скобка в регулярном выражении помечает группу захвата, так что вы можете точно видеть WHAT данные, которые вы сопоставили, поэтому вы можете выполнить дальнейшую обработку.
Это только верхушка айсберга... есть много различных вещей, которые вы можете сделать в регулярном выражении, что делает обработку текста REALLY легкой.
Самое крутое регулярное выражение когда- либо :
/^1?$|^(11+?)\1+$/
Он проверяет, является ли число простым. И это работает!!
N.B.: чтобы это сработало, нужно немного настроить; число, которое мы хотим проверить, сначала должно быть преобразовано в строку “ 1 "s, а затем мы можем применить выражение для проверки, если строка не содержит простого числа “ 1" s:
def is_prime(n)
str = "1" * n
return str !~ /^1?$|^(11+?)\1+$/
end
Есть подробный и очень доступным объяснением в блоге Авинаша через тернии к звездам! это .
Если вы хотите узнать о регулярных выражениях ,я рекомендую освоить регулярные выражения. Он проходит весь путь от самых базовых понятий, вплоть до разговоров о том, как работают различные двигатели под ними. В последних 4 главах также дается специальная глава для каждого из PHP, .Net, Perl и Java. Я многому у него научился и до сих пор использую его в качестве ориентира.
Как вы, возможно, знаете, Oracle теперь имеет регулярные выражения: http://www.oracle.com/technology/oramag/webcolumns/2003/techarticles/rischert_regexp_pt1.html . Я использовал новую функциональность в нескольких запросах, но она не была так полезна, как в других контекстах. Причина, я полагаю, заключается в том, что регулярные выражения лучше всего подходят для поиска структурированных данных, скрытых в неструктурированных данных.
Например, я мог бы использовать regex, чтобы найти Oracle сообщений, которые заполнены в файле журнала. Невозможно узнать, где находятся послания-только как они выглядят. Так что regex-это лучшее решение этой проблемы. Когда вы работаете с реляционной базой данных, данные обычно предварительно структурированы, поэтому regex не светит в этом контексте.
Регулярное выражение (regex или regexp для краткости) - это специальная текстовая строка для описания шаблона поиска. Вы можете думать о регулярных выражениях как о подстановочных знаках на стероидах. Вы, вероятно, знакомы с подстановочными знаками, такими как *.txt , чтобы найти все текстовые файлы в файловом менеджере. Эквивалент regex - это .*\.txt$ .
Регулярное выражение (regex или regexp для краткости) - это специальная текстовая строка для описания шаблона поиска. Вы можете думать о регулярных выражениях как о подстановочных знаках на стероидах. Вы, вероятно, знакомы с подстановочными знаками, такими как *.txt , чтобы найти все текстовые файлы в файловом менеджере. Эквивалент regex - это .*\.txt$ .
Отличный ресурс для регулярных выражений: http://www.regular-expressions.info
Если вы только начинаете с регулярных выражений, я от всей души рекомендую такой инструмент, как Regex Coach:
http://www.weitz.de/regex-coach/
также слышал хорошие вещи о RegexBuddy:
Эти RE специфичны для Visual Studio и C++, но я нашел их иногда полезными:
Найти все вхождения "routineName" с ненулевыми парами, переданными по умолчанию:
routineName\(:a+\)
И наоборот, чтобы найти все вхождения "routineName" только по умолчанию: routineName\(\)
Чтобы найти код, включенный (или отключенный) в отладочной сборке:
\#if. _DEBUG*
Обратите внимание, что это будет ловить все варианты: ifdef, if defined, ifndef, if !определенный