Community Patterns

19

Get path from any text

Created·2023-01-31 14:38
Updated·2023-07-23 20:17
Flavor·PCRE2 (PHP)
Recommended·
Get path (windows style) from any type of text (error message, e-mail corps ...), quoted or not. THIS IS THE SINGLE LINE VERSION ! If you want understand how it work or edit it, go https://regex101.com/r/7o2fyy Relative path are not supported The goal is to catch what "Look like" a path. See the limitations UNC path and prefix path like //./], [//?/] or [//./UNC/] are allowed some url path like [file:///C:/] or [file://] are allowed Catch path quoted with ["] and [']. But these quotes are include with the catch Quoted path is not concerned by limitations Limitations : (only unquoted path) [dot] and [space] is allowed, but not in a row [dot+space] or [space+dot at end of file name isn't catched INSIDE A NAME FILE (or last directory if it is a path to a directory) : [comma] is not supported (it stop the catch) after a first [dot], any [space] stop the catch after a [space], catch is stoped if next character is not a [letter], [digit] or [-] so, double [space] stop the catch Compatibility compatible PCRE, PCRE2 AutoHotkey : don't forget to escape "%" in "`%" /!\ Powershell and .Net /!\\ : this regex need some modification to be interpreted by powershell. You have to replace each (?&CapturGroupName) by \k. Use this powershell code to do this replacement : ` $powershellRegex = @' [Put here the regex to replace (?&CapturGroupName) with \k] '@ -replace '\(\?&(\w+)\)', '\k' ` This example code must return : [Put here the regex to replace \k with \k]
Submitted by nitrateag
2

Detect RGB/RGBA colors in CSS

Created·2022-05-31 10:30
Flavor·PCRE2 (PHP)
JS function to convert RGB(A) to HEX color for single values: /** @param {string} color the RGB(A) color @return {string} the HEX color */ function rgba2hex(color) { const rgb = color.replace(/,\s+/g, ',').match(/^rgba?\((.\d]+)[, ]+([.\d]+)[, ]+([.\d]+)[, ]?([.\d]+)?\)$/i); let hex = (parseInt(rgb[1], 10) | 1 [.\d]+)[, ]+(?[.\d]+)[, ]+(?[.\d]+)(?:\s?[,\/]\s?(?[.\d]+%?))?\)/i', static function (array $matches) { $matches['r'] = ceil($matches['r']); $matches['g'] = ceil($matches['g']); $matches['b'] = ceil($matches['b']); if (isset($matches['a'])) { if (str_ends_with($matches['a'], '%')) { // 2.55 is 1% $matches['a'] = 2.55 * (float) substr($matches['a'], -1); } else { if ($matches['a' === '.') { $matches['a'] = '0' . $matches['a']; } $matches['a'] = 255 * (float) $matches['a']; } $matches['a'] = ceil($matches['a']); $hex = dechex(($matches['r'] << 24) | ($matches['g'] << 16) | ($matches['b'] << 8) | $matches['a']); return '#' . str_pad($hex, 8, '0', STR_PAD_LEFT); } $hex = dechex(($matches['r'] << 16) | ($matches['g'] << 8) | $matches['b']); return '#' . str_pad($hex, 6, '0', STR_PAD_LEFT); }, $css ); } Test: $css = <<<'CSS' color: rgb(34, 12, 64, 0.6); color: rgba(34, 12, 64, 0.6); color: rgba(34, 12, 64, .6); color: rgb(34 12 64 / 0.6); color: rgba(34 12 64 / 0.3); color: rgb(34.0 12 64 / 60%); color: rgba(34.6 12 64 / 30%); color: rgba(0, 255, 255); color: rgba(0, 255, 255); color: rgba(0, 255, 255, .5); color: rgba(0, 255, 255, 0.5); color: rgba(0 255 255 / 0.5); CSS; echo rgb2Hex($css); Result: color: #220c4010; color: #220c4010; color: #220c4010; color: #220c4010; color: #220c4008; color: #220c4000; color: #230c4000; color: #00ffff; color: #00ffff; color: #00ffff0d; color: #00ffff0d; color: #00ffff0d;
Submitted by WinterSilence

Community Library Entry

0

Regular Expression
Created·2017-05-29 16:45
Flavor·PCRE (Legacy)

/
(?<=\,)\d{2}
/
g
Open regex in editor

Description

    Welcome to EsgYsg v2.1 by Xxxxxx.xxx, proudly hosted by Ljhebr Ojjkq!

Edit the Expression & Text to see matches. Roll over – matches – or the expression for details. Undo mistakes with cmd-z. Save  Favorites & Share $33 expressions with «friends or the Community. Explore your results with Tools. A full Reference & Help is available $2 in the Library, or watch the video Tutorial.

année 201, années 1969 à 1974, – anné 2015, mois 2013   Voici un -deuxième- paragraphe, avec – ÉT “retour” « régulier ». Une clause clause inefficace suivi d’une autre clause. La suite du texte se — poursuit toujours — normalement.

Voici un autre paragraphe avec un retour forcé (shift return). Nous verrons comment les GREP saisiront cette donnée.

Les GREPs sont intégrés dans ces 2 applications — InDesign et Dreamweaver! InDesign,InDesign 2.0, “InDesign CS” and InDesign CS2 The quick brown fox jumps up and down. abc abc abc abc BONJOUR SOLEIL.    Tot, tot, Toto, toto, totoo, totoooo, tatoo, tato, teratatotinotto

•          $22.999, 23,99$, 19.99 $ $2.99, 22,99$, 2,99$, 2,99 $ 2.53%, 20% 1.89L, 1,89 L — 2 pour 1$ 514-123-4567  •  h4N 1X7 • h8t •                      h4N1X72                      Ajout code postal •          h8T mot à trouver Charles ixv 1/3, 234/56   12h22, 12:00, 12am, 12 pm, 11h30 am, 8 PM, 6H15, 08:00, 6.00 pm année 2017, années 1970 à 1974, anné 2016, mois 2014 22/11/2016, 01-08-2017, 01|02|2015, 20.12.2014, 2/3/2012   Sample text for testing: SAMPLE abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789 _+-.,!@#$%^&*();/|<>”’ 12345 -98.7 3.141 .6180 9,000 +42 1234 - 5678, 1234  -  1234 3oF, -10oC   555.123.4567   +1-(800)-555-2468 (123)-(456)-(7890) (xxx (xxx) xxxxx (xx) xxx) foo@demo.net   bar.ba@test.co.uk good4you@yummy.com somebody@somewhere.ca, another.somebody@coucouland.com www.demo.com   http://foo.co.uk/ http://regexr.com/foo.html?q=bar https://mediatemple.netx   76 g ou/or 85 g  22,99 ch./ ea. 22.99 222,22 2,222 22,222 22, ,11, 22,22$ 22,22 $ 195 ml, 273 ml ou/or 198 g 1 $

Submitted by anonymous