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·2025-03-05 07:59
Flavor·JavaScript

/
((?:^(?:[#*=-]{1,7}|\w[^\r\n]{0,200}\r?\n[-=]{2,200}|<h[1-6][^>]{0,100}>)[^\r\n]{1,200}(?:<\/h[1-6]>)?(?:\r?\n|$))|(?:\[[0-9]+\][^\r\n]{1,800})|(?:(?:^|\r?\n)[ \t]{0,3}(?:[-*+•]|\d{1,3}\.\w\.|\[[ xX]\])[ \t]+(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,200}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,200}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*(?:(?:\r?\n[ \t]{2,5}(?:[-*+•]|\d{1,3}\.\w\.|\[[ xX]\])[ \t]+(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,200}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,200}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*){0,6}(?:\r?\n[ \t]{4,7}(?:[-*+•]|\d{1,3}\.\w\.|\[[ xX]\])[ \t]+(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,200}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,200}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*){0,6})?)|(?:(?:^>(?:>|\s{2,}){0,2}(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,200}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,200}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*\r?\n?){1,15})|(?:(?:^|\r?\n)(?:```|~~~)(?:\w{0,20})?\r?\n[\s\S]{0,1500}?(?:```|~~~)\r?\n?|(?:(?:^|\r?\n)(?: {4}|\t)[^\r\n]{0,200}(?:\r?\n(?: {4}|\t)[^\r\n]{0,200}){0,20}\r?\n?)|(?:<pre>(?:<code>)?[\s\S]{0,1500}?(?:<\/code>)?<\/pre>))|(?:(?:^|\r?\n)(?:\|[^\r\n]{0,200}\|(?:\r?\n\|[-:]{1,200}\|){0,1}(?:\r?\n\|[^\r\n]{0,200}\|){0,20}|<table>[\s\S]{0,2000}?<\/table>))|(?:^(?:[-*_]){3,}\s*$|<hr\s*\/?>)|(?![\s\]})>,'])(?:^(?:<[a-zA-Z][^>]{0,100}>)?(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,800}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,800}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*(?:<\/[a-zA-Z]+>)?(?:\r?\n|$))|(?![\s\]})>,'])(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,400}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,400}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*|(?:(?<!\w)"""[^"]{0,300}"""(?!\w)|(?<!\w)(?:['"`'"])[^\r\n]{0,300}\1(?!\w)|(?<!\w)`[^\r\n]{0,300}'(?!\w)|(?<!\w)``[^\r\n]{0,300}''(?!\w)|\([^\r\n()]{0,200}(?:\([^\r\n()]{0,200}\)[^\r\n()]{0,200}){0,5}\)|\[[^\r\n\[\]]{0,200}(?:\[[^\r\n\[\]]{0,200}\][^\r\n\[\]]{0,200}){0,5}\]|\$[^\r\n$]{0,100}\$|`[^`\r\n]{0,100}`)|(?![\s\]})>,'])(?:(?:^|\r?\n\r?\n)(?:<p>)?(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,1000}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,1000}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*(?:<\/p>)?(?=\r?\n\r?\n|$))|(?:<[a-zA-Z][^>]{0,100}(?:>[\s\S]{0,1000}?<\/[a-zA-Z]+>|\s*\/>))|(?:(?:\$\$[\s\S]{0,500}?\$\$)|(?:\$[^\$\r\n]{0,100}\$))|(?![\s\]})>,'])(?![.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\s)(?:[^\r\n]{1,800}(?:(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)|(?=[\r\n]|$))|[^\r\n]{1,800}(?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]|(?:'(?=`)|''(?=``)))(?:(?:(?!(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$)).){1,100}(?:[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?<![\s\]})>,'](?=[.!?…]|\.{3}|[\u2026\u2047-\u2049]|[\p{Emoji_Presentation}\p{Extended_Pictographic}]))|(?:'(?=`)|''(?=``)))(?=\S|$))?)[\s\]})>,']*)
/
gmu
Open regex in editor

Description

Source: X, Github

Submitted by anonymous