Решение от 2018
У нас есть: http://example.com?sent=yes
let searchParams = new URLSearchParams(window.location.search)
Высылает ли / g1] существуют?
searchParams.has('sent') // true
Он равен «да»?
let param = searchParams.get('sent')
, а затем просто сравните его.
Рассмотрите пример в 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} /" является регулярным выражением, и поскольку Вы видите, что это - ОЧЕНЬ краткий способ найти соответствие в строке.
Кроме того, использование группируются, можно извлечь информацию, как таковую:
match = /([^@]*)@(.*)/.match("myaddress@domain.com")
name = match[1]
domain = match[2]
Здесь, круглая скобка в регулярном выражении отмечает группу фиксации, таким образом, Вы видите точно, ЧТО данные - то, что Вы соответствовали, таким образом, можно сделать последующую обработку.
Это - просто верхушка айсберга... существуют много много разных вещей, которые можно сделать в регулярном выражении, которое делает текст обработки ДЕЙСТВИТЕЛЬНО легким.
Регулярные выражения (или Regex) привыкли к соответствию шаблона в строках. Можно таким образом вытащить все адреса электронной почты из части текста, потому что он следует за определенным шаблоном.
В некоторых случаях регулярные выражения включаются в наклонные черты вправо и после того, как вторая наклонная черта будет помещенными опциями, такими как нечувствительность к регистру. Вот хороший :)
/(bb|[^b]{2})/i
Разговорный это может читать "2 быть или не быть".
Первая часть (скобки), они разделяются каналом | символ, который приравнивается к или оператор, таким образом (a|b) соответствует "a" или "b". Первая половина переданной по каналу области соответствует "bb". Имя второй половины, которое я не знаю, но это - квадратные скобки, они соответствуют чему-либо, что не является "b", вот почему существует штука символа крыши (технический термин) там. Волнистые скобки соответствуют количеству вещей перед ними, в этом случае два символа, которые не являются "b".
После того, как вторым / является "i", который делает это нечувствительным к регистру. Использование запуска и наклонных черт конца является конкретной средой, иногда Вы делаете и иногда Вы не делаете.
Две ссылки, что я думаю, что Вы найдете удобным для этого,
Если Вы хотите узнать о регулярных выражениях, я рекомендую Освоить Регулярные выражения. Это идет полностью от очень простых понятий, полностью до разговора о том, как различные механизмы работают внизу. Последние 4 главы также дают специализированную главу каждому из PHP, .NET, Perl и Java. Я узнал о много из него, и все еще используйте его в качестве ссылки.
Самое прохладное регулярное выражение когда-либо:
/^1?$|^(11+?)\1+$/
Это тестирует, если число является простым. И это работает!!
N.B.: чтобы заставить его работать, немного установки необходимо; число, которое мы хотим протестировать, должно быть преобразовано в строку “1
” s сначала, затем мы можем применить выражение, чтобы протестировать, если строка не содержит простое число “1
” s:
def is_prime(n)
str = "1" * n
return str !~ /^1?$|^(11+?)\1+$/
end
Существует подробное и очень доступное объяснение, законченное в блоге Avinash Meetoo.
Они Ре характерно для Visual Studio и C++, но я находил их полезными время от времени:
Найдите все случаи "routineName" с параметрическими усилителями не по умолчанию переданными:
routineName \(:a + \)
С другой стороны найти все случаи "routineName" только со значениями по умолчанию: routineName \(\)
Найти код включило (или отключил) в отладочная сборка:
\#if. _ ОТЛАЖИВАЮТ*
Обратите внимание, что это поймает все варианты: ifdef, если определено, ifndef, если! определенный
Если Вы только начинаете с регулярными выражениями, я сердечно рекомендую инструмент как тренер Regex:
http://www.weitz.de/regex-coach/
также услышанные хорошие вещи о RegexBuddy:
Как можно знать, Oracle теперь имеет регулярные выражения: http://www.oracle.com/technology/oramag/webcolumns/2003/techarticles/rischert_regexp_pt1.html. Я использовал новую функциональность в нескольких запросах, но это не было столь же полезно как в других контекстах. Причина, я верю, состоит в том, что регулярные выражения подходят лучше всего для нахождения структурированных данных, проложенных под землей в неструктурированных данных.
Например, я мог бы использовать regex для нахождения сообщений Oracle, которые наполнены в файле журнала. Не возможно знать, где сообщения - только, на что они похожи. Таким образом, regex является лучшим решением той проблемы. Когда Вы работаете с реляционной базой данных, данные обычно предварительно структурируются, таким образом, regex не сияет в том контексте.
Регулярное выражение (regex или regexp, если коротко) является специальной текстовой строкой для описания шаблона поиска. Можно думать о регулярных выражениях как о подстановочных знаках на стероидах. Вы, вероятно, знакомы с подстановочными нотациями такой как
*.txt
найти все текстовые файлы в файловом менеджере. regex эквивалент.*\.txt$
.
Большой ресурс для регулярных выражений: http://www.regular-expressions.info
Проверка надежных паролей :
Этот пароль проверяет пароль длиной от 5 до 10 буквенно-цифровых символов, по крайней мере, с одним верхним регистром, одним нижним регистром и одной цифрой:
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{5,10}$