Regular Expressions 101

Community Patterns

21

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

Community Library Entry

0

Regular Expression
Created·2021-11-18 04:08
Updated·2021-11-18 04:11
Flavor·Python

Description

`[ [ { "content": "\n", "isParticipating": true, "groupNum": 0, "groupName": null, "startPos": 16, "endPos": 17 }, { "content": "\n", "isParticipating": true, "groupNum": 1, "groupName": 1, "startPos": 16, "endPos": 17 } ] ]router.get('/scripts/:file', ({ serveStatic }) => { serveStatic('path/to/scripts', { permanent: true, // ensure that files are permanently accessible, even after a new version of the site has been deployed. exclude: ['some-non-versioned-file.js'], // you can exclude specific files from being served permanently. You should do this for any files that do not have a hash of the content in the name. }) })import { CustomCacheKey } from '@layer0/core/router'

router.get('/some/path', ({ cache }) => { cache({ browser: { // Sets the cache-control: maxage=n header sent to the browser. To prevent the browser from caching this route // set maxAgeSeconds: 0 maxAgeSeconds: 0,

  // Sends a non-standard header `x-sw-cache-control: n` that you can use to control caching your service worker.
  // Note that service workers do not understand this header by default, so you would need to add code to your service
  // worker to support it
  serviceWorkerSeconds: 60 * 60,
},
edge: {
  // Sets the TTL for a response in Layer0's edge cache
  maxAgeSeconds: 60 * 60 * 24,

  // Sets the amount of time a stale response will be served from the cache.  When a stale response is sent, Layer0
  // will simultaneously fetch a new response to serve subsequent requests.
  // Using stale-while-revalidate helps raise your effective cache hit rate to near 100%.
  staleWhileRevalidateSeconds: 60 * 60, // serve stale responses for up to 1 hour while fetching a new response

  // And many other options
},
// Optionally customizes the cache key for both edge and browser
key: new CustomCacheKey()
  .addBrowser() // Split cache by browser type
  .addCookie('some-cookie'), // Split cache by some-cookie cookie

}) })import { CustomCacheKey } from '@layer0/core/router'

router.get('/some/path', ({ cache }) => { cache({ key: new CustomCacheKey().addCookie('language').addCookie('currency'), // Other options... }) })`

Submitted by Natego☬158ᴗ✯eth:0x36210C88C438001A616687456978Aa4d3AdCba35