{"id":4516,"date":"2014-10-09T22:38:29","date_gmt":"2014-10-10T04:38:29","guid":{"rendered":"https:\/\/memberpress.com\/?p=4516"},"modified":"2017-09-21T00:22:27","modified_gmt":"2017-09-21T06:22:27","slug":"how-to-become-a-regular-expression-power-user","status":"publish","type":"post","link":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/","title":{"rendered":"Comment devenir un grand utilisateur d'expressions r\u00e9guli\u00e8res"},"content":{"rendered":"<p>If you don\u2019t know what <b>regular expression<\/b> (also known as \u201c<b>regex<\/b>\u201d or \u201c<b>regexp<\/b>\u201d) is, it\u2019s an <a title=\"Regular Expressions Reference\" href=\"http:\/\/www.regular-expressions.info\/\">unbelievably powerful language<\/a>\u00a0for executing a search and\/or replace through any kind of text. <a title=\"Regular Expressions on Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\">Regex has had a long and glorious history<\/a> (it\u2019s origins date back to the \u201850s) and even now, you use it every day \u2026 <em>you just might not know it<\/em>. Regex is baked into most major programming languages and computer systems these days and is used in a wide variety of apps.<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-69e7df61b8cd4\" class=\"ez-toc-cssicon-toggle-label\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">WHAT'S INSIDE<\/p>\n<span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #000000;color:#000000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e7df61b8cd4\"  \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#Some_Examples\" >Some Examples<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#How_to_Read_Regex\" >How to Read Regex<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#The_Basics\" >The Basics<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#Breakdown_of_Our_Phone_Number_Example\" >Breakdown of Our Phone Number Example<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#Breakdown_of_our_URL_Regex\" >Breakdown of our URL Regex<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#Breakdown_of_our_Email_Regex\" >Breakdown of our Email Regex<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#Regex_Search_and_Replace\" >Regex Search and Replace<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>Regex is no longer just for programmers: it\u2019s showing up in all sorts of places today. Some of the places you might have seen it so far is for matching URLs in Google Analytics, search & replace in your favorite text editor (some popular editors supporting\u00a0regex include <a href=\"http:\/\/www.sublimetext.com\/\">Sublime<\/a>, <a href=\"https:\/\/atom.io\/\">Atom<\/a>, <a href=\"https:\/\/c9.io\">Cloud9<\/a>,\u00a0<a href=\"http:\/\/notepad-plus-plus.org\/\">Notepad++<\/a>, Google Docs\u00a0and\u00a0Microsoft Word \u2026 although Word has a\u00a0regex syntax that is <em>very<\/em> non-standard) and even <a title=\"Take the MemberPress tour \u2026\" href=\"https:\/\/memberpress.com\/tour\/\">matching file names in our awesome WordPress Membership Plugin, MemberPress<\/a>.<\/p>\n<p>Even though regex is now showing up in surprisingly new places, its seemingly cryptic nature will probably always make it more predominantly used by programmers and \u201cpower users.\u201d<\/p>\n<p>So here's the point in this article\u00a0where you need to decide if you\u2019re going to continue life without knowing the untold power of regex, or if you\u2019ll swallow the red pill and wield the sword of a power user! In this post, I\u2019ll give you the basic knowledge you\u2019ll need to start putting this extremely useful tool to work for you. So let\u2019s get started!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Some_Examples\"><\/span>Some Examples<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>What do regex statements look like? If you saw one without having any idea what it was, it would look like complete gobbledygook.<\/p>\n<p>Here\u2019s a sample regexp statement to match a phone number:<\/p>\n<p><code>\\(?\\d{3}\\)?[- ]\\d{3}-\\d{4}<\/code><\/p>\n<p>Here\u2019s one that matches a URL:<\/p>\n<p><code>https?:\\\/\\\/[\\w-]+(\\.[\\w-]{2,})*(:\\d{1,5})?<\/code><\/p>\n<p>And one that can match an email address:<\/p>\n<p><code>[\\w\\d._%+-]+@[\\w\\d.-]+\\.[\\w]{2,4}<\/code><\/p>\n<p>Finally, here\u2019s a simple search and replace that will find any domain names with the \u2018test\u2019 subdomain and change them to a \u2018www\u2019 subdomain:<\/p>\n<p>Search: <code>test\\.([^\\.]+)\\.com<\/code><br \/>\nReplace: <code>www.$1.com<\/code><\/p>\n<p>Intimidated yet? <strong>Don\u2019t be.<\/strong> I\u2019ll go through how regex statements are interpreted, breaking down what we\u2019re doing in each of these statements and explaining how to create your own.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_to_Read_Regex\"><\/span>How to Read Regex<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Regular expressions are like normal find statements, but on steroids. For instance, if you wanted to find the name \u201cHarry\u201d on a web page, you\u2019d click control-f and type \u201cHarry\u201d to find it. With regex you can do more than simply search for \u201cHarry.\u201d You could search for \u201cHarry\u201d or \u201cBob\u201d with <code>(Harry|Bob)<\/code> or you could search for any word starting with \u201cHa\u201d with <code>Ha\\S*<\/code>.<\/p>\n<p>To your computer, text is represented as a \u201cstring\u201d of characters. In fact, if you\u2019ve ever overheard programmers talking about code you\u2019ve probably heard them use the term \u201cstring\u201d when referring to some variable.<\/p>\n<p>Regular expressions read left to right (just like English and many other languages) and they explain to the computer what to match as it scans a string left to right. As the computer looks at each character it follows this flow:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-4705\" src=\"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/regex-flow.png\" alt=\"regex-flow\" width=\"554\" height=\"369\" srcset=\"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/regex-flow.png 554w, https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/regex-flow-300x200.png 300w, https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/regex-flow-255x170.png 255w, https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/regex-flow-156x104.png 156w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/p>\n<p>If you look at this flowchart, as complicated as it might seem, you\u2019ll see something very familiar here. It\u2019s pretty much identical to how you\u2019d expect <b>any<\/b> search to happen on a computer and how searches that you\u2019re currently comfortable with happen already. Regex just adds some extremely powerful features on top of normal search.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"The_Basics\"><\/span>The Basics<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Now before we start dissecting our example regex statements from above, let\u2019s get through some of the very basic command characters of regex:<\/p>\n<h4>Repeaters: *, + and {\u2026}<\/h4>\n<p>The asterisk (*) and plus (+) characters are repeaters. A repeater is only used after another character or enclosed statement and tells the computer to match the preceding character X number of times. The asterisk will match the preceding character 0 to infinite times; the plus, 1 to infinite times; <code>{2}<\/code> will match it 2 times exactly; <code>{4,6}<\/code>\u00a0will match it between 4\u00a0and 6\u00a0times exactly; and <code>{7,}<\/code>\u00a0will match it between 7\u00a0and infinite times.<\/p>\n<h4>Wildcard: .<\/h4>\n<p>You\u2019re probably used to the star symbol being used as a wildcard, but it\u2019s a period (.) in regex. The period will simply match <b>any<\/b> character.<\/p>\n<h4>Optional: ?<\/h4>\n<p>Like the repeater, the optional character, a question mark (?), is only used after another character or enclosed statement. When this is in place, it tells the computer that the preceding character may or may not be present in search results.<\/p>\n<h4>Beginning and End of String: ^ and $<\/h4>\n<p>When the caret (^) is used at the beginning of the regex, it indicates that the first of the string should be matched. And the dollar sign ($), when used at the end of the regex, will match the end of the string.<\/p>\n<h4>Possible Characters: [\u2026]<\/h4>\n<p>Enclosing characters within brackets indicates the characters that could be matched in this position. For example, if you wanted to match an \u2018n\u2019,\u2019m\u2019,\u2019l\u2019 or \u2018_\u2019 then you could add this to your regex <code>[nml_]<\/code>. If you just wanted to match any letter or number you could add this <code>[A-Za-z0-9]<\/code>.<\/p>\n<p>If you want to match any character <b>except<\/b> the possible characters you can just put a caret (^) after the opening bracket. For instance, if you wanted to match any character except \u2018x\u2019,\u2019y\u2019,\u2019z\u2019 or \u2018_\u2019 you could do so with the statement: <code>[^xyz_]<\/code>. As you can see, this can give you fine grain control over what you\u2019re matching on a character-by-character basis.<\/p>\n<h4>Enclosed Statements: (\u2026)<\/h4>\n<p>Sometimes you want to make sections of your regex behave as a block or save them for later. For this, all you need to do is wrap the statement in parentheses.<\/p>\n<h4>Escape: \\<\/h4>\n<p>Now, what if you want to match for the actual \u2018+\u2019, \u2018.\u2019, etc characters? Well, if you throw a backslash in front of it then that will tell your computer that you\u2019re trying to match an actual search character, and to not interpret it as a command character.<\/p>\n<h4>Shorthand Characters: \/s, \/S, \/d, \/D, \/w, \/W and \/b<\/h4>\n<p>These characters are very useful and will help you match certain sets of characters. Here\u2019s how these break down:<\/p>\n<ul>\n<li><code>\/s<\/code> matches any whitespace characters such as space and tab<\/li>\n<li><code>\/S<\/code> matches any non-whitespace characters<\/li>\n<li><code>\/d<\/code> matches any digit character<\/li>\n<li><code>\/D<\/code> matches any non-digit characters<\/li>\n<li><code>\/w<\/code> matches any word character (basically alpha-numeric)<\/li>\n<li><code>\/W<\/code> matches any non-word character<\/li>\n<li><code>\/b<\/code> matches any word boundary (this would include spaces, dashes, commas, semi-colons, etc)<\/li>\n<\/ul>\n<p>Of course there are many other, more powerful things that you can do in regex but these basics will get you the tools you need for 90% of your advanced search needs.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Breakdown_of_Our_Phone_Number_Example\"><\/span>Breakdown of Our Phone Number Example<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Okay, now that you have the tools, let\u2019s look through our examples to see how they work, starting with our match for the phone number:<\/p>\n<p><code>\\(?\\d{3}\\)?[- ]\\d{3}-\\d{4}<\/code><\/p>\n<p>So we\u2019ll break it down by statement:<\/p>\n<p><b><code>\\(?<\/code><\/b><br \/>\nThis is the first statement that the computer will look for. It starts with an escape character (\\) followed by an open parentheses (() followed by an optional character (?). This tells the regex to look for an actual open parentheses to signal the start of a phone number, but that it may not be present in every instance of a phone number.<\/p>\n<p><b><code>\\d{3}<\/code><\/b><br \/>\nThe second statement starts with the shorthand character for digit (\\d) then it has a repeater ({3}) that will require there to be 3 digits. It does not end with a question mark because these three digits are not optional \u2013 they must be present for the search result to qualify as a phone number.<\/p>\n<p><b><code>\\)?<\/code><\/b><br \/>\nNow the computer will check for an optional closing parenthesis, but if it\u2019s not present it can still match.<\/p>\n<p><b><code>[- ]<\/code><\/b><br \/>\nAfter that, we have a possible characters statement that will look for either a space or a dash to match.<\/p>\n<p><b><code>\\d{3}-\\d{4}<\/code><\/b><br \/>\nFinally, we actually have some statements that will expect 3 digits followed by a dash and then followed by 4 digits.<\/p>\n<p>You can see this in action and play around with it here: <a href=\"http:\/\/regex101.com\/r\/nW9iC5\/3\">http:\/\/regex101.com\/r\/nW9iC5\/3<\/a><\/p>\n<p>A few things you might notice about this regex is that it will only match two acceptable formats for phone numbers:<\/p>\n<ul>\n<li><code>(888) 888-8888<\/code><\/li>\n<li><code>888-888-8888<\/code><\/li>\n<\/ul>\n<p>It won\u2019t match a multitude of unacceptable phone number formats such as:<\/p>\n<ul>\n<li><code>8888888888<\/code><\/li>\n<li><code>88-8888-8888<\/code><\/li>\n<\/ul>\n<p>But it <b>will<\/b> also match a few formats that might not be appropriate:<\/p>\n<ul>\n<li><code>(888-888-8888<\/code><\/li>\n<li><code>888) 888-8888<\/code><\/li>\n<li><code>(888)-888-8888<\/code><\/li>\n<\/ul>\n<p>What are some things you think you could do to ensure that this regex only matched the appropriate formats?<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Breakdown_of_our_URL_Regex\"><\/span>Breakdown of our URL Regex<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>First, I\u2019d like to state that the following regex is not a comprehensive URL matching regex by any means. It will only match a web address with no arguments and has several other problems, but would serve to match many URLs effectively.<\/p>\n<p><code>https?:\\\/\\\/[\\w-]+(\\.[\\w-]+)*(:\\d{1,5})?<\/code><\/p>\n<h4>Now for the breakdown:<\/h4>\n<p><b><code>https?:\\\/\\\/<\/code><\/b><br \/>\nThis first statement matches the protocol of the URL. Because the \u201cs\u201d has a question mark after it, it\u2019s optional. There are also escape characters in front of the forward slashes, which is usually what has to happen in regex to match forward slashes. So really, the only two ways a URL could match this statement would be to begin with <code>http:\/\/<\/code> or <code>https:\/\/<\/code>.<\/p>\n<p><b><code>[\\w-]+<\/code><\/b><br \/>\nHere we have a possible characters statement followed by a plus. This means that the next characters must be 1 or more word characters or dashes.<\/p>\n<p><b><code>(\\.[\\w-]+)*<\/code><\/b><br \/>\nHere we have the statement that will match a period followed by word characters or dashes. This whole statement is wrapped in parentheses and followed by a plus which tells the computer that we can repeat this whole sequence zero or more times. So, this section could match <code>.memberpress<\/code> or <code>.memberpress.com<\/code> or <code>.memberpress.co.uk<\/code>, and so on.<\/p>\n<p><b><code>(:\\d{1,5})?<\/code><\/b><br \/>\nFinally, this statement will provide for an optional port number to be appended to the end of the URL which includes a colon followed by 1 to 5 digits then wrapped in parentheses and followed by a question mark to make the entire statement optional.<\/p>\n<p>Here\u2019s where you can play around with this one: <a href=\"http:\/\/regex101.com\/r\/vL5uZ2\/2\">http:\/\/regex101.com\/r\/vL5uZ2\/2<\/a><\/p>\n<p>This regex will match:<\/p>\n<ul>\n<li>https:\/\/memberpress.com<\/li>\n<li>https:\/\/memberpress.com<\/li>\n<li>http:\/\/localhost:3000<\/li>\n<\/ul>\n<p>BUT it won\u2019t match any parameters trailing a URL like this:<\/p>\n<ul>\n<li>http:\/\/localhost:3000?test=1&page=5<\/li>\n<\/ul>\n<p>What could you add to this regex to match some parameters at the end of a URL?<\/p>\n<p>If you're interested in the most comprehensive URL matching regex (one that will match parameters, unicode characters, large TLDs, etc) <a title=\"In Search of the Perfect URL Matching Regular Expression\" href=\"https:\/\/mathiasbynens.be\/demo\/url-regex\">there are plenty of them<\/a> that you can look at but apparently the most comprehensive and accurate is the one created by Diego Perini which <a href=\"https:\/\/gist.github.com\/dperini\/729294\">you can look at on his Github gist<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Breakdown_of_our_Email_Regex\"><\/span>Breakdown of our Email Regex<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Another common use of regex is to match email addresses. Our email matching regex will actually match a substantial number of email addresses:<\/p>\n<p><code>[\\w\\d\\._%+-]+@[\\w\\d.-]+\\.[\\w]{2,4}<\/code><\/p>\n<h4>Here\u2019s the breakdown:<\/h4>\n<p><b><code>[\\w\\d\\._%+-]+ <\/code><\/b><br \/>\nThis statement will match one or more word characters, digits, periods, underscores, percentage symbols, plus symbols, or dashes.<\/p>\n<p><b><code>@ <\/code><\/b><br \/>\nEvery email address needs an \u2018@\u2019 symbol and that\u2019s what this matches of course.<\/p>\n<p><b><code>[\\w\\d.-]+ <\/code><\/b><br \/>\nAfter the \u2018@\u2019 symbol we need to start on the domain name. This statement will match one or more word characters, digits, periods, or dashes.<\/p>\n<p><b><code>\\.[\\w]{2,4} <\/code><\/b><br \/>\nNow we need to match the top level domain, which is a period followed by 2 to 4 word characters long.<\/p>\n<p>You can also play around with this regex here: <a href=\"http:\/\/regex101.com\/r\/yQ2wP9\/1\">http:\/\/regex101.com\/r\/yQ2wP9\/1<\/a><\/p>\n<p>Even though this regex isn\u2019t 100% comprehensive it should be able to match most addresses.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Regex_Search_and_Replace\"><\/span>Regex Search and Replace<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>So in many cases you\u2019ll care not only about matching patterns in your text with regex but also utilizing the power of search and replace with regex.<\/p>\n<p>Let's use the search and replace example from above:<\/p>\n<p>Search: <code>test\\.([^\\.]+)\\.com<\/code><br \/>\nReplace: <code>www.$1.com<\/code><\/p>\n<h4>Here's the breakdown, starting with the search pattern:<\/h4>\n<p><b><code>test\\. <\/code><\/b><br \/>\nThis first part will match any part of the string that starts with \u201ctest.\u201d<\/p>\n<p><b><code>([^\\.]+) <\/code><\/b><br \/>\nThis statement will match one or more characters that are anything except a period. The entire statement is wrapped in parentheses for a different reason than we\u2019ve seen so far: this time it\u2019s to save whatever is matched by this statement to be used in the replacement.<\/p>\n<p><b><code>\\.com <\/code><\/b><br \/>\nFinally, it must match a \u201c.com\u201d at the end.<\/p>\n<p>Now, in the replacement we can use \u201c$1\u201d to include whatever we saved between the parentheses in the search pattern. If you had a second statement like this in the search pattern you could use it in the replacement by using \u201c$2.\u201d<\/p>\n<p>You can play around with this search and replace regex here: <a href=\"http:\/\/regex101.com\/r\/bW5vX8\/1\">http:\/\/regex101.com\/r\/bW5vX8\/1<\/a><\/p>\n<p>This search pattern has some real limitations though. It can only match URLS starting with \u201ctest.\u201d and ending with \u201c.com\u201d. How do you think you could modify it to match URLs ending in \u201c.com\u201d, \u201c.net\u201d or \u201c.org\u201d?<\/p>\n<h4>Learning more about Regex<\/h4>\n<p>This primer has given you a crash course on regular expressions but there\u2019s plenty more to learn. You can get more info about regex on <a href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\">Wikipedia<\/a> or <a href=\"http:\/\/www.regular-expressions.info\/\">regular-expressions.info<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you don\u2019t know what regular expression (also known as \u201cregex\u201d or \u201cregexp\u201d) is, it\u2019s an unbelievably powerful language\u00a0for executing a search and\/or replace through any kind of text. Regex has had a long and glorious history (it\u2019s origins date back to the \u201850s) and even now, you use it every day \u2026 you just [\u2026]<\/p>\n","protected":false},"author":1,"featured_media":15233,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_strive_editorial_status":"not-started","_strive_copy_of":0,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"content-sidebar","_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","_strive_checklists":"\"\"","_strive_active_checklist":"62291e2bb2422","_strive_post_notes":"","footnotes":""},"categories":[134],"tags":[209,210,208,207,211,212],"class_list":{"0":"post-4516","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-how-to-2","8":"tag-code","9":"tag-programming","10":"tag-regex","11":"tag-regular-expression","12":"tag-search","13":"tag-search-pattern","14":"entry"},"acf":{"plans":["scale"],"is_featured":false,"download_source":"none","mothership_slug":"","download_url":""},"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.5.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Blair Williams\"\/>\n\t<meta name=\"keywords\" content=\"code,programming,regex,regular expression,search,search pattern\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.5.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"MemberPress\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"How to Become a Regular Expression Power User\" \/>\n\t\t<meta property=\"og:description\" content=\"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t\t<meta property=\"og:image:height\" content=\"408\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-10-10T04:38:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-09-21T06:22:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/memberpress\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@memberpress\" \/>\n\t\t<meta name=\"twitter:title\" content=\"How to Become a Regular Expression Power User\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#blogposting\",\"name\":\"How to Become a Regular Expression Power User\",\"headline\":\"How to Become a Regular Expression Power User\",\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/author\\\/supercleanse\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/emperor_regex-1.jpg\",\"width\":740,\"height\":408},\"datePublished\":\"2014-10-09T22:38:29-04:00\",\"dateModified\":\"2017-09-21T00:22:27-04:00\",\"inLanguage\":\"fr-FR\",\"commentCount\":8,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#webpage\"},\"articleSection\":\"How To, code, programming, regex, regular expression, search, search pattern\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/memberpress.com\\\/fr\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/category\\\/how-to-2\\\/#listItem\",\"name\":\"How To\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/category\\\/how-to-2\\\/#listItem\",\"position\":2,\"name\":\"How To\",\"item\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/category\\\/how-to-2\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#listItem\",\"name\":\"How to Become a Regular Expression Power User\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#listItem\",\"position\":3,\"name\":\"How to Become a Regular Expression Power User\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/category\\\/how-to-2\\\/#listItem\",\"name\":\"How To\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/#organization\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"url\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/mp-icon-RGB_Icon-01.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#organizationLogo\",\"width\":1650,\"height\":1275,\"caption\":\"memberpress logo icon\"},\"image\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/memberpress\\\/\",\"https:\\\/\\\/www.pinterest.com\\\/memberpressplugin\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/MemberPressPlugin\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/memberpress\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/author\\\/supercleanse\\\/#author\",\"url\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/author\\\/supercleanse\\\/\",\"name\":\"Blair Williams\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/litespeed\\\/avatar\\\/408a6ba443ef497d5ca72aaa6158574d.jpg?ver=1776356570\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#webpage\",\"url\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/\",\"name\":\"How to Become a Regular Expression Power User\",\"description\":\"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/author\\\/supercleanse\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/author\\\/supercleanse\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/memberpress.com\\\/wp-content\\\/uploads\\\/2014\\\/10\\\/emperor_regex-1.jpg\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#mainImage\",\"width\":740,\"height\":408},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/blog\\\/how-to-become-a-regular-expression-power-user\\\/#mainImage\"},\"datePublished\":\"2014-10-09T22:38:29-04:00\",\"dateModified\":\"2017-09-21T00:22:27-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/\",\"name\":\"MemberPress\",\"description\":\"The All-In-One WordPress Membership Plugin\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/memberpress.com\\\/fr\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>How to Become a Regular Expression Power User<\/title>\n\n","aioseo_head_json":{"title":"Comment devenir un grand utilisateur d'expressions r\u00e9guli\u00e8res","description":"Dans ce billet, nous passerons en revue les principes de base d'une expression r\u00e9guli\u00e8re et nous d\u00e9composerons quelques instructions simples de recherche et de remplacement d'expressions r\u00e9guli\u00e8res.","canonical_url":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/","robots":"max-image-preview:large","keywords":"code,programming,regex,regular expression,search,search pattern","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#blogposting","name":"How to Become a Regular Expression Power User","headline":"How to Become a Regular Expression Power User","author":{"@id":"https:\/\/memberpress.com\/fr\/blog\/author\/supercleanse\/#author"},"publisher":{"@id":"https:\/\/memberpress.com\/fr\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg","width":740,"height":408},"datePublished":"2014-10-09T22:38:29-04:00","dateModified":"2017-09-21T00:22:27-04:00","inLanguage":"fr-FR","commentCount":8,"mainEntityOfPage":{"@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#webpage"},"isPartOf":{"@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#webpage"},"articleSection":"How To, code, programming, regex, regular expression, search, search pattern"},{"@type":"BreadcrumbList","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr#listItem","position":1,"name":"Home","item":"https:\/\/memberpress.com\/fr","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/#listItem","name":"How To"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/#listItem","position":2,"name":"How To","item":"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/","nextItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#listItem","name":"How to Become a Regular Expression Power User"},"previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#listItem","position":3,"name":"How to Become a Regular Expression Power User","previousItem":{"@type":"ListItem","@id":"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/#listItem","name":"How To"}}]},{"@type":"Organization","@id":"https:\/\/memberpress.com\/fr\/#organization","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","url":"https:\/\/memberpress.com\/fr\/","logo":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2022\/10\/mp-icon-RGB_Icon-01.jpg","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#organizationLogo","width":1650,"height":1275,"caption":"memberpress logo icon"},"image":{"@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#organizationLogo"},"sameAs":["https:\/\/www.instagram.com\/memberpress\/","https:\/\/www.pinterest.com\/memberpressplugin\/","https:\/\/www.youtube.com\/c\/MemberPressPlugin","https:\/\/www.linkedin.com\/company\/memberpress\/"]},{"@type":"Person","@id":"https:\/\/memberpress.com\/fr\/blog\/author\/supercleanse\/#author","url":"https:\/\/memberpress.com\/fr\/blog\/author\/supercleanse\/","name":"Blair Williams","image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/litespeed\/avatar\/408a6ba443ef497d5ca72aaa6158574d.jpg?ver=1776356570"}},{"@type":"WebPage","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#webpage","url":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/","name":"How to Become a Regular Expression Power User","description":"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/memberpress.com\/fr\/#website"},"breadcrumb":{"@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#breadcrumblist"},"author":{"@id":"https:\/\/memberpress.com\/fr\/blog\/author\/supercleanse\/#author"},"creator":{"@id":"https:\/\/memberpress.com\/fr\/blog\/author\/supercleanse\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg","@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#mainImage","width":740,"height":408},"primaryImageOfPage":{"@id":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/#mainImage"},"datePublished":"2014-10-09T22:38:29-04:00","dateModified":"2017-09-21T00:22:27-04:00"},{"@type":"WebSite","@id":"https:\/\/memberpress.com\/fr\/#website","url":"https:\/\/memberpress.com\/fr\/","name":"MemberPress","description":"The All-In-One WordPress Membership Plugin","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/memberpress.com\/fr\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"MemberPress","og:type":"article","og:title":"How to Become a Regular Expression Power User","og:description":"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.","og:url":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/","og:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg","og:image:secure_url":"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg","og:image:width":740,"og:image:height":408,"article:published_time":"2014-10-10T04:38:29+00:00","article:modified_time":"2017-09-21T06:22:27+00:00","article:publisher":"https:\/\/www.facebook.com\/memberpress\/","twitter:card":"summary_large_image","twitter:site":"@memberpress","twitter:title":"How to Become a Regular Expression Power User","twitter:description":"In this post we go over some of the basics found in a regular expression and breakdown some simple regex search and replace statements.","twitter:image":"https:\/\/memberpress.com\/wp-content\/uploads\/2014\/10\/emperor_regex-1.jpg"},"aioseo_meta_data":{"post_id":"4516","title":"Comment devenir un grand utilisateur d'expressions r\u00e9guli\u00e8res","description":"Dans ce billet, nous passerons en revue les principes de base d'une expression r\u00e9guli\u00e8re et nous d\u00e9composerons quelques instructions simples de recherche et de remplacement d'expressions r\u00e9guli\u00e8res.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2025-10-09 16:25:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":null,"ai":null,"created":"2020-12-21 16:19:15","updated":"2026-03-03 15:09:10"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/fr\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/\" title=\"How To\">How To<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\tHow to Become a Regular Expression Power User\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/memberpress.com\/fr"},{"label":"How To","link":"https:\/\/memberpress.com\/fr\/blog\/category\/how-to-2\/"},{"label":"How to Become a Regular Expression Power User","link":"https:\/\/memberpress.com\/fr\/blog\/how-to-become-a-regular-expression-power-user\/"}],"app_bookmark":{"bookmark_id":0,"is_bookmarked":false,"bookmark_date":0},"comments_count":"8","content_native":[],"app_access":{"can_access":true,"restrict_message":null},"_links":{"self":[{"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/posts\/4516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/comments?post=4516"}],"version-history":[{"count":0,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/posts\/4516\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/media\/15233"}],"wp:attachment":[{"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/media?parent=4516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/categories?post=4516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/memberpress.com\/fr\/wp-json\/wp\/v2\/tags?post=4516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}