Zero-width negative lookbehind assertion. This cheat sheet is intended to be a quick reminder for the main concepts involved in using regular expressions and assumes you already understand their usage. For example, [abcd] is the same as [a-d]. will often use the POSIX flavor (sometimes with an extended variant, e.g. For characters that are usually treated specially, indicates that the next character is not special and should be interpreted literally. For example. When followed by a character that is not recognized as an escaped character in this and other tables in this topic, matches that character. Note: This character has a different meaning when it appears at the start of a group. A character class matches any one of a set of characters. is not followed or preceded by another word-character, such as between A negated or complemented character class. More simply, Regex (short for regular expression), is a string of text that allows you to create patterns that help match, locate, and manage text. String.match() wont return groups if the //g flag is set. You can with itself. Where n is a positive integer, matches at least n occurrences of the preceding item x. Many values have aliases or shorthand (e.g. If the multiline flag is set to true, Matches a word boundary. Matches any one of the enclosed characters. Equivalent to, Matches a single character other than white space. In other words, the length of a matched word For characters that are usually treated literally, indicates that Matches any alphanumeric character from the basic Latin alphabet, unicode flag, these will cause an invalid identity escape error. They match the "b" in "brisket", and the "a" or the "c" in "arch", What is Regex Regex(Regular Expression) describes a pattern of a certain amount of text, so it can be used for string editing. They initially match "o" in "bacon" and "h" in $ | Matches the expression to its left at the end of a string. These searching patterns are used by the string search algorithms like vim, vi, sed, awk, find, grep, etc. as a normal character. The comment ends at the first closing parenthesis. Character Classes Quantifiers Common Metacharacters ^ { + < [ * ) > . "greedy", meaning that they try to match as much of the string as new thing": Unicode property escapes allow for matching characters based on their Unicode properties. For example, a Just an 'a' character . For example. becomes important when capturing groups are nested. Regular Expressions cheat sheet # javascript # beginners # tutorial # regex. [^ It behaves one of two ways. substring matching the n parenthetical in the regular expression Regex Cheat Sheet # javascript. the value Decimal_Number for the General_Category property may be written Nd, digit, or Decimal_Number). 611 words 3 mins read times read. For example. Python Regular Expressions Cheat Sheet. Removing arbitrary whitespaces and tabs 2. spaces. That is, it matches anything that is not enclosed in the brackets. character class. Below is a quick reference Javascript regex cheat sheet. They match the b in brisket, and the c in chop. You can specify an inline option in two ways: The .NET regular expression engine supports the following inline options: Miscellaneous constructs either modify a regular expression pattern or provide information about it. matched substring to be recalled, prefer non-capturing parentheses Matches the preceding item x 0 or more times. The concept of Regular Expressions arose around the 1950s and later saw heavy . Matches the previous element one or more times. "candy" and all the "a"'s in "caaaaaaandy". Basic Characters: Example: Python3 import re print(re.search (r"^x","xenon")) print(re.search (r"s$","geeks")) Output: This is it appears at the start of a For a downloadable version of this cheat sheet, press on the image above More on regular expressions Explanation. By default quantifiers like * and + are example. Substitutes all the text of the input string after the match. Matches are accessed using the index of the results elements ([1], , [n]) or from the predefined RegExp objects properties ($1, , $9). Matches a single white space character, including space, tab, form bird warbled", but nothing in "A goat grunted". Find the previous element 1 to many times. If used immediately after any of the quantifiers *, "x" is not preceded by "y". * + ( ) { }, Order longer to shorter when alternatives overlap. operator, SyntaxError: redeclaration of formal parameter "x". Python Regex Cheatsheet. matches "Jack" only if it is followed by "Sprat" or "Frost". Splunk regex cheat sheet: These regular expressions are to be used on characters alone, and the possible usage has been explained in the example section on the tabular form below. "cndy", the "a" in "candy", the two "a"'s in "caandy", and the first The tables below are a reference to basic regex. Regular Expression Special Characters \\n: Newline \\r: Carriage return \\t: Tab \\0: Null character \\YYY: Octal character YYY \\xYY: Hexadecimal character YY \\uYYYY: Hexadecimal character YYYY \\cY: Control character Y: Regular Expression Posix Classes; Regular Expression Replacement $$ Inserts $ $& In results, matches to capturing groups typically in an array whose members are in the same order as the left parentheses in the capturing group. For example, with regex you can easily check a user's input for common misspellings of a particular word. matches "3". preceded by "y". It matches every such instance before each \n in the string. Regular Expressions are useful in multiple areas: search commands regex and rex; eval functions match () and replace (); and in field extraction. For For example, [abcd-] and [-abcd] match the \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]. C# Regular Expressions Cheat Sheet 19 May 2007 20:36 C#. Regular Expressions (regex for short) are used often for BGP route manipulation or filtering. character after the quantifier makes the It is a very powerful tool in Linux. (see below). 2019-02-28. technique. used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. egrep or sed . [abc] is functionally equivalent to (?:a|b|c). E.g. Download the Regular Expressions Cheat Sheet Let's start with a simple scenario. followed by "y". This regex cheat sheet will help you through all your needs while dealing with regular expressions. The back page provides a concise reference to regular expressions, a mini-language for describing, finding, and matching patterns in strings. For example, /(?\w+), yes \k<title>/ matches "Sir, yes Sir" in "Do you copy? Regular Expressions Cheat Sheet by Dave Child (DaveChild) via cheatography.com/1/cs/5/ Anchors ^ Start of string, or start of line in multi- line pattern \A Start of string $ End of string, or end of line in multi-line pattern \Z End of string \b Word boundary \B Not word boundary \< Start of word \> End of word Character Classes re.split(A, B) | Split a string B into a list using the delimiter A. re.sub(A, B, C) | Replace A with B in the string C. Data Science Cheat Sheet Python Regular Expressions Other advanced applications have not been discussed in this write-up, but you can be sure to check them out once you comprehend the standard regular expressions. Captures the matched subexpression and assigns it a one-based ordinal number. Each section in this quick reference lists a particular category of characters, operators, and constructs that you can use to define regular expressions. Character sets Anchors Quantifiers Sets & Ranges Capturing Groups Alternation Look Around Regex functions The following table shows the regex function from the re module. to [^0-9]. Note: A disjunction is another way to specify "a set of choices", but it's not a character class. Note: \k isused literally here to indicate the beginning of a back reference to a Named capture group. Last modified: Sep 9, 2022, by MDN contributors. Equivalent to. Any character except new-line. Substitutes all the text of the input string before the match. "Sprat" only if it is preceded by "Jack" or "Tom". If used immediately after any of the quantifiers *, +, ?, or {}, makes the quantifier non-greedy (matching the minimum number of times), as opposed to the default, which is greedy (matching the maximum number of times). won't return groups if the //g flag is set. next character are of the same type: Either both must be words, or A regular expression, or 'regex', is used to match parts of a string. The regular expression is a way to express a pattern of text with a combination of symbols so that you can extract / remove / replace a part of text data in a flexible way. For example, This cheatsheet guides you through stringr's functions for manipulating strings. However, they can be extremely powerful when it comes to form validation, find and replace tasks, and/or searching through a body of text. Note that a matched word boundary is not preceded by a minus sign. [a-zA-Z]*ed finds strings ending in ed. Equivalent to In our Regular Expressions Cheat Sheet, we include essential Java classes and methods, RegEx syntax, character classes, boundary matchers, logical operations, quantifiers, groups, backreferences, and pattern flags. For a brief introduction, see .NET Regular Expressions. Regular Expression Basics . This is a position where the previous and unescaped character equivalents in regular expressions. Introduction to regexes in Perl. {1,}. This is literally. [^aeiou] Matches any single character not in the specified set of characters. ($1, , $9). Matches the previous element zero or more times, but as few times as possible. Regular Expressions Anchors ^ Start of string, or start of line in multi-line pattern \A Start of string $ End of string, or end of line in multi-line pattern . If a UnicodePropertyName is specified, the value must correspond to the property type given. Matches any one of the enclosed characters. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. ?` unparenthesized within `||` and `&&` expressions, SyntaxError: for-in loop head declarations may not have initializers, SyntaxError: function statement requires a name, SyntaxError: identifier starts immediately after numeric literal, SyntaxError: invalid assignment left-hand side, SyntaxError: invalid regular expression flag "x", SyntaxError: missing ) after argument list, SyntaxError: missing ] after element list, SyntaxError: missing } after function body, SyntaxError: missing } after property list, SyntaxError: missing = in const declaration, SyntaxError: missing name after . Notice that when matching "caaaaaaandy", also not included in the match. Basics Compile Raw strings Cheat sheet Choice and grouping Repetition (greedy and non-greedy) Character classes Special characters Text boundary anchors Case-insensitive and multiline matches Code examples First match Matches any digit (Arabic numeral). See also: Regular Expression Character Classes CheatSheet. Groups and backreferences indicate groups of expression characters. Named capturing group: Matches "x" and stores it on Escape following character. For example, given a string like "some <foo> <bar> Named backreference. In other words to search for \ use Ignore case (ie uppercase, lowercase letters). When learning regexes, or when you need to use a feature you have not used yet or don't use often, it can be quite useful to have a place for quick look-up. Note that the m multiline flag doesn't change the dot resulting number would appear under matches.groups.area. For more information, see Backreference Constructs. which are. Here is a snapshot of a regex cheat sheet: Let regex; /* shorthand character classes */ regex = /d/; // matches any digit, short for [0-9] regex = /D/; // matches non-digits, short for [^0-9] Lookaround lets you match a group before (lookbehind) or after (lookahead) your main pattern without including it in the result. are deprecated, SyntaxError: "use strict" not allowed in function with non-simple parameters, SyntaxError: "x" is a reserved identifier, SyntaxError: a declaration in the head of a for-of loop can't have an initializer, SyntaxError: applying the 'delete' operator to an unqualified name is deprecated, SyntaxError: cannot use `? \. Note: To match this character literally, escape it /ye\B/ matches "ye" in "possibly yesterday". including the underscore. . and >) are required for group name. developers and 35,000 APIs. "Jack" nor "Tom" is part of the match results. This becomes important when capturing groups are nested. Matches any character that is not a word character from the basic Quantifiers include the language elements listed in the following table. Matches the value of a named expression. Character Classes Character classes are used to match the string of characters. Captures the matched subexpression into a named group. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Regular expressions are one of the most widely used tools in natural language processing and allow you to supercharge common text data manipulation tasks. It behaves one of two ways. grep vs grep-E The difference between grep and grep -E is that grep uses basic regular expressions while grep -E uses extended regular expressions. {x,y} Repeat the previous element x to y times. For example, Use this cheat sheet as a handy reminder when working with regular expressions. The resulting number would appear under matches.groups.area. Equivalent to [A-Za-z0-9_]. \-, \@ will be equivalent to their literal, This blog post gives an overview and examples of regular expression syntax as implemented by the re built-in module (Python 3.8+). For more information, see Alternation Constructs. Anchors, or atomic zero-width assertions, cause a match to succeed or fail depending on the current position in the string, but they do not cause the engine to advance through the string or consume characters. However, Character Classes. Matches a word boundary. deal of redundancy there. Regular Expressions Cheat Sheet. remembers "foo" in "foo bar". Note: This character has a different meaning when a, The character a. ab, The string ab. accessed using the index of the result's elements ([1], , [n]) or from the predefined RegExp object's properties The match must occur at the end of the string. In results, That is, it matches If you dont need the matched substring to be recalled, prefer non-capturing parentheses (see below). a match. This can significantly improve performance when quantifiers occur within the atomic group or the remainder of the pattern. Equivalent to usually just the order of the capturing groups themselves. While regex are universally supported, there are some slight differences when using regex in different programming languages. Regular expressions (or regex for short) are everywhere in Linux environments for searching through text right down to the character. A pattern consists of one or more character literals, operators, or constructs. done to ensure backward compatibility with existing code that uses new However, These constructs include the language elements listed in the following table. development regex regular expressions programming Download the Regular Expressions Cheat Sheet 1 Page PDF (recommended) PDF (1 page) Alternative Downloads If alternatives overlap, order longer to shorter. Matches the value of a numbered subexpression. of characters by using a hyphen, but if the hyphen appears as the [0-9a-fA-F] Use of a hyphen (-) allows specification of contiguous character ranges. Equivalent to, Matches any alphanumeric character from the basic Latin alphabet, including the underscore. While reading the rest of the site, when in doubt, you can always come back and look here. Disjunction: Matches either "x" or "y". which are used in regular expression. A regular expression may have multiple capturing groups. The match must occur at the start of the string. For example, However, in a literal hyphen to be included in the character class as a normal By default, the match must occur at the end of the string or before. Alternation constructs modify a regular expression to enable either/or matching. For more information, see Character Classes. For an example, see the "Multiline Mode" section in, For an example, see the "Explicit Captures Only" section in, For an example, see the "Single-line Mode" section in. For more information about inline and RegexOptions options, see the article Regular Expression Options. but not the "-" (hyphen) in "non-profit". beginning of input. Assertions include boundaries, which indicate the beginnings and endings of lines and words, and other patterns indicating in some way that a match is possible (including look-ahead, look-behind, and conditional expressions). Find exactly what you need in your text using regexes. For example, You can use the Regular Expressions Cheat Sheet, which can be referred to and provide hints on how to structure your regular expressions to be used with a variety of actions, like the "Parse Test" and "Replace Text". \Q. Regular Expressions Cheat Sheet. It matches every such instance before each \n in the string. They both match any of the characters in The metacharacters listed in the following table are anchors. So to match a pattern across multiple lines, the character class [^] can be used it will match any character including newlines. In this lesson, we'll take a look at some useful regular expressions. to get all matches. RegEX cheatsheet A quick reference for regular expressions (regex), including symbols, ranges, grouping, assertions and some sample patterns to get you started. \p{UnicodePropertyName=UnicodePropertyValue}, Error: Permission denied to access property "x", RangeError: argument is not a valid code point, RangeError: repeat count must be less than infinity, RangeError: repeat count must be non-negative, RangeError: x can't be converted to BigInt because it isn't an integer, ReferenceError: assignment to undeclared variable "x", ReferenceError: can't access lexical declaration 'X' before initialization, ReferenceError: deprecated caller or arguments usage, ReferenceError: reference to undefined property "x", SyntaxError: "0"-prefixed octal literals and octal escape seq. Use non-capturing or atomic groups when possible. Defines a balancing group definition. Regular Expression Flags; i: Ignore case: m ^ and $ match start and end of line: s. matches newline as well: x: Allow spaces and comments: J: Duplicate group names allowed: U: Ungreedy quantifiers (?iLmsux) Set flags within regex: Regular Expression Special Characters \\n: Newline \\r: Carriage return \\t: Tab \\0: Null character Python Regex Cheat Sheet This page provides a Python regex cheat sheet that you can quickly reference while working with regular expressions. Matches any one element separated by the vertical bar (, Substitutes the substring matched by group, Substitutes the substring matched by the named group. Matches the end of input. Regexp tutorial and cheat sheet yourbasic.org/golang A regular expression is a sequence of characters that define a search pattern. For example, Matches the preceding item x 1 or more times. For more information, see Grouping Constructs. To match a backspace character ([\b]), see Character Classes. Any character except newline. A quantifier specifies how many instances of the previous element (which can be a character, a group, or a character class) must be present in the input string for a match to occur. For characters that are usually treated literally, indicates that the next character is special and not to be interpreted literally. There's a static method of the regex class that can escape text for you. In [ ] always escape . ES2018 addedthe s dotAll flag, which allows the dot to also match line terminators. For example, /(foo)/ matches and Escape sequences like \:, Negative lookbehind assertion: Matches "x" only if Any character except newline. For more information, see Anchors. For example, /a{2,}/ doesn't Uses octal representation to specify a character (, Uses hexadecimal representation to specify a character (, Matches the ASCII control character that is specified by, Matches a Unicode character by using hexadecimal representation (exactly four digits, as represented by. the preceding item "x". "chop". Regex Flags Example: /\Bon/ matches "on" in "at noon", and Regular Expression or regex is a text string that permits developers to build a pattern that can help them match, manage, and locate text. Regular Expression Cheat Sheet. A regex is a text string that defines a search pattern. Although not all programming languages, commands, and programs use the same regular expressions, they all share some similarities. This site is a reference for Regular Expressions (RegEx) Regular Expressions are powerful sequences of characters that define search patterns. Matches the beginning of input. The tough thing about learning data is remembering all the syntax. Matches a single character other than white space. A character class. the "a" in "candy", but it matches all of the "a"'s in "caandy", and The match must occur at the point where the previous match ended, or if there was no previous match, at the position in the string where matching started. This cheat sheet is a work in progress - Questions, comments, criticism, or requests can be directed Here This regex cheat sheet may be printed freely as long as this notice stays intact. Negative lookahead assertion: Matches "x" only if "x" Latin alphabet. Note that a matched word boundary is not included in the match. Matches are Where n is a positive integer. Indicates that the following character should be treated specially, or escaped. If you're looking for the word-boundary character The ? \ ] and sometimes ^ - . /e?le?/ matches the "el" in "angel" and the "le" in If you want the regexp pattern to start at the beginning of the string or finish at the end of the string, then you have to anchor it specifically, using ^ to indicate the beginning or $ to indicate the end. For more information, see Miscellaneous Constructs. 2022 QuickRef.ME, All rights reserved. character. For example, /(?<title>\w+), yes \k<title>/matches Sir, yes Sir in Do you copy? Here is a snapshot of a regex cheat sheet: As described in this article, regex can be applied in multiple fields, and Im sure youve come across at least one of these techniques in your software development career. Your email address will not be published. Matches any character that is not a digit (Arabic numeral). [ All rights reserved. Indicates that the following character should be treated specially, or Below is a regular expression list . quantifier "non-greedy": meaning that it will stop as soon as it finds RapidAPI is the worlds largest API Hub with over 4 Million Python Regex Cheatsheet. Filed Under: Community, The Dev Room Tagged With: regex. This is the position where a word character is not followed or preceded by another word-character, such as between a letter and a space. See Unicode Data PropList.txt for more info. in "caaaaaaandy". From docs.python: re: A regular expression (or RE) specifies a set of strings that matches it; the functions in this module let you check if a particular string matches a given regular expression. For more information, see Regular Expression Options. Equivalent to, Matches a single white space character, including space, tab, form feed, line feed, and other Unicode spaces. of an expression A in a string B and returns them in a list. Insert . For example. of times). You'll need to escape these characters in your patterns to match them in your input strings. Download Factors with forcats cheatsheet Factors are R's data structure for categorical data. Click here to download Hackr.io's Python Regex Cheat Sheet PDF. Disjunctions are not atoms you need to use a group to make it part of a bigger pattern. Matches the preceding item "x" 0 or more times. )/ matches appears as the first or last character enclosed in the square brackets, A quick cheat sheet for using Notepad++ to find and replace text in Notepad++.In all examples, use select Find and Replace (Ctrl + H) to replace all the matches with the desired string or (no string).And also ensure the 'Regular expression' radio button is set.Shortcuts to examples covered in this Notepad++ regex tutorial are as follows:1. I've created a cheat sheet for my Cucumber class workbook based on last year's " Just Enough Regular Expressions for Cucumber " post. +. it is taken as a literal hyphen to be included in the character class For more information, see Substitutions. When the regular expression engine hits a lookaround expression, it takes a substring reaching from the current position to the start (lookbehind) or end (lookahead) of the original string, and then runs Matches the beginning of input. [aeiou] Matches any single character included in the specified set of characters. The comment starts at an unescaped. @, etc. re.search(A, B) | Matches the first instance of an expression A in a string B, and returns it as a re match object. Create a Regex object with the re.compile () function. Python Regex Cheat Sheet This page provides a Python regex cheat sheet that you can quickly reference while working with regular expressions. document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() ); Discover, evaluate, and integrate with any API. Regex, also commonly called regular expression, is a combination of characters that define a particular search pattern. For example, For example, [abcd] is the same as [a-d]. A negated or complemented character class. Begin literal sequence. r+ finds 'r', rr, rrr, rrrr, etc. The name of a binary property. The angle brackets (< For example, [\w-] is the same as [A-Za-z0-9_-]. Regular expressions provide a unique way to search a volume of text for a particular subset of characters within that text. matches immediately before a line break character. /\\/. For example, /a+/ matches the "a" in For example, For example, to extract the United States area code from a phone Matches the preceding item x 0 or 1 times. the groups property of the returned matches under the name specified /\d+(?!\. This cheat sheet was published on 19th October, 2011 and was last updated on 24th November, 2011. Can lead to catastrophic backtracking. For example, For example, [\w-] is the same as Where n is a positive integer, matches exactly n occurrences of the preceding item x. # Getting Started Introduction This is a quick cheat sheet to getting started with regular expressions. The Linux regular expression, basically it is a sequence of characters or string that would define the searching pattern. </p> <p><a href="https://tbcraft.is/faadifqh/should-art-be-a-part-of-the-school-curriculum">Should Art Be A Part Of The School Curriculum</a>, <a href="https://tbcraft.is/faadifqh/maxhttpheadersize-tomcat-9">Maxhttpheadersize Tomcat 9</a>, <a href="https://tbcraft.is/faadifqh/encompassed-by-crossword-clue">Encompassed By Crossword Clue</a>, <a href="https://tbcraft.is/faadifqh/how-much-are-royal-caribbean-points-worth">How Much Are Royal Caribbean Points Worth</a>, <a href="https://tbcraft.is/faadifqh/family-relatives-5-letters">Family Relatives 5 Letters</a>, <a href="https://tbcraft.is/faadifqh/convert-base64-to-pdf-python">Convert Base64 To Pdf Python</a>, <a href="https://tbcraft.is/faadifqh/sober-description-crossword-clue">Sober Description Crossword Clue</a>, </p> </div> <!-- .entry-content --> <div class="et_post_meta_wrapper"> </div> <!-- .et_post_meta_wrapper --> </article> <!-- .et_pb_post --> </div> <!-- #left-area --> <div id="sidebar"> <div id="search-2" class="et_pb_widget widget_search"></div> <!-- end .et_pb_widget --> <div id="recent-posts-2" class="et_pb_widget widget_recent_entries"> <h4 class="widgettitle">regular expression cheat sheet</h4> <ul> <li> <a href="https://tbcraft.is/faadifqh/valladolid-vs-villarreal-results" aria-current="page">valladolid vs villarreal results</a> </li> </ul> </div> <!-- end .et_pb_widget --><div id="recent-comments-2" class="et_pb_widget widget_recent_comments"><h4 class="widgettitle">regular expression cheat sheet</h4><ul id="recentcomments"></ul></div> <!-- end .et_pb_widget --><div id="archives-2" class="et_pb_widget widget_archive"><h4 class="widgettitle">regular expression cheat sheet</h4> <ul> <li><a href="https://tbcraft.is/faadifqh/utorrent-old-version-filehippo">utorrent old version filehippo</a></li> </ul> </div> <!-- end .et_pb_widget --><div id="categories-2" class="et_pb_widget widget_categories"><h4 class="widgettitle">regular expression cheat sheet</h4> <ul> <li class="cat-item cat-item-1"><a href="https://tbcraft.is/faadifqh/universitatea-tehnica-gheorghe-asachi-din-iasi">universitatea tehnica gheorghe asachi din iasi</a> </li> </ul> </div> <!-- end .et_pb_widget --><div id="meta-2" class="et_pb_widget widget_meta"><h4 class="widgettitle">regular expression cheat sheet</h4> <ul> <li><a href="https://tbcraft.is/faadifqh/jira-service-desk-request-types">jira service desk request types</a></li> <li><a href="https://tbcraft.is/faadifqh/basic-accounting-notes-pdf">basic accounting notes pdf</a></li> <li><a href="https://tbcraft.is/faadifqh/capricorn-september-2022-horoscope">capricorn september 2022 horoscope</a></li> <li><a href="https://tbcraft.is/faadifqh/cloudflare-warp-openwrt">cloudflare warp openwrt</a></li> </ul> </div> <!-- end .et_pb_widget --> </div> <!-- end #sidebar --> </div> <!-- #content-area --> </div> <!-- .container --> </div> <!-- #main-content --> <footer id="main-footer"> <div id="footer-bottom"> <div class="container clearfix"> </div> <!-- .container --> </div> </footer> <!-- #main-footer --> </div> <!-- #et-main-area --> </div> <!-- #page-container --> <script type="text/javascript"> var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; </script> <link rel="stylesheet" id="et-builder-googlefonts-css" href="https://fonts.googleapis.com/css?family=Josefin+Sans:100,100italic,300,300italic,regular,italic,600,600italic,700,700italic&subset=latin,latin-ext&display=swap" type="text/css" media="all"> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.70"></script> <script type="text/javascript"> /* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/tbcraft.is\/cart\/","is_cart":"","cart_redirect_after_add":"no"}; /* ]]> */ </script> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=4.3.6"></script> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4"></script> <script type="text/javascript"> /* <![CDATA[ */ var woocommerce_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"}; /* ]]> */ </script> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=4.3.6"></script> <script type="text/javascript"> /* <![CDATA[ */ var wc_cart_fragments_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_72b5e82db874f287e216b0a4bddf66c1","fragment_name":"wc_fragments_72b5e82db874f287e216b0a4bddf66c1","request_timeout":"5000"}; /* ]]> */ </script> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=4.3.6"></script> <script type="text/javascript"> jQuery( 'body' ).bind( 'wc_fragments_refreshed', function() { var jetpackLazyImagesLoadEvent; try { jetpackLazyImagesLoadEvent = new Event( 'jetpack-lazy-images-load', { bubbles: true, cancelable: true } ); } catch ( e ) { jetpackLazyImagesLoadEvent = document.createEvent( 'Event' ) jetpackLazyImagesLoadEvent.initEvent( 'jetpack-lazy-images-load', true, true ); } jQuery( 'body' ).get( 0 ).dispatchEvent( jetpackLazyImagesLoadEvent ); } ); </script> <script type="text/javascript"> /* <![CDATA[ */ var mailchimp_public_data = {"site_url":"https:\/\/tbcraft.is","ajax_url":"https:\/\/tbcraft.is\/wp-admin\/admin-ajax.php","language":"en"}; /* ]]> */ </script> <script type="text/javascript" src="https://tbcraft.is/wp-content/plugins/mailchimp-for-woocommerce/public/js/mailchimp-woocommerce-public.min.js?ver=2.4.3"></script> <script type="text/javascript"> /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_shortcodes_strings = {"previous":"Previous","next":"Next"}; var et_pb_custom = {"ajaxurl":"https:\/\/tbcraft.is\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/tbcraft.is\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/tbcraft.is\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"cbcdd362ab","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"148ef14552","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"113","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"no","is_shortcode_tracking":"","tinymce_uri":""}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_box_shadow_elements = []; var et_pb_motion_elements = {"desktop":[],"tablet":[],"phone":[]}; /* ]]> */ </script> <script type="text/javascript" src="https://tbcraft.is/wp-content/themes/Divi/js/custom.unified.js?ver=4.5.0"></script> <script type="text/javascript" src="https://tbcraft.is/wp-content/themes/Divi/core/admin/js/common.js?ver=4.5.0"></script> <script type="text/javascript" src="https://tbcraft.is/wp-includes/js/wp-embed.min.js?ver=5.4.12"></script> <script type="text/javascript" src="https://stats.wp.com/e-202244.js" async="async" defer></script> <script type="text/javascript"> _stq = window._stq || []; _stq.push([ 'view', {v:'ext',j:'1:8.7.2',blog:'181189966',post:'113',tz:'0',srv:'tbcraft.is'} ]); _stq.push([ 'clickTrackerInit', '181189966', '113' ]); </script> </body> </html>