Regular Expressions 101

Community Patterns

22

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

1

Regular Expression
Created·2021-04-04 10:35
Flavor·Python

r"
(?P<monitor_IO_Elem>^(?P<placeId_IO_Elem>(?:\d{1,2}.\w{1,2}))(?:\ *)(?P<Id_IO_Elem>(?:S|L|P|cvM|vM|V)(?:\d{1,2})(?:\ *)(?:-?)(?:\ *)(?:\d{1,2}))(?:\ )* (?:\-)* (?:\ )*(?:\[)(?P<seqNrPin__IO_Elem>(?:\d){1,2})(?:\])(?:\ *)(?P<action>(?:S|D|T|L|ON|OFF))$)(?:[\n|\r])?
"
gm
Open regex in editor

Description

LUXOMS [DOMOTICA] :

'elements' - S - switch

In the LUXOM configuration there are just a few number of fields to use. Therefor by using an certain syntax, to add more features and possibilities to extract later by regular expression.

Such as :

  • ELEMENTS (S - switch)

  • ACTIONS

    class ELEMENTS(enum.Enum): S = ("switch", "schakelaar") L = ("light", "licht") P = ("power connectors", "stopcontacten") D = ("motion/light detector", "bewegings/licht detector") T = ("temperature", "temperatuur") HC = ("home contact : door/window", "huis contact : deur/raam") cvM = ("CV motor", "CV motor") # has to be first because contains vM vM = ("ventilation motor", "ventilatie motor") V = ("valve", "klep")

    class ACTIONS(enum.Enum): S = ("1-short", "1-kort") D = ("2-double", "2-dubbel") T = ("3-triple", "3-drie") L = ("long", "lang") ON = ("on", "aan") OFF = ("off", "uit")

X-TRA : Using an enumeration in the join command - python - https://stackoverflow.com/questions/66811369/using-an-enumeration-in-the-join-command-python

https://stackoverflow.com/questions/6930982/how-to-use-a-variable-inside-a-regular-expression

Submitted by anonymous