← GalleryGet path from any text✨ Emoji Combos/(?############ Let's catch paths without "" or '' ############################
)(?<opening>(?# First, catch the starting path, the <opening> ###################
)\b(?<montage>[a-zA-Z]:[\/\\])(?# montage = 'C:/'
)|[\/\\][\/\\](?<!http:\/\/)(?<!https:\/\/)(?>(?# check not 'http[s]:' prefix
)[?.][\/\\](?:[^\/\\<>:"|?\n\r ]+[\/\\])?(?# '//[?or.]/xxxxx' or '//[?or.]/server/'
)(?&montage)?(?# '//[?or.]/c:/' or '//[?or.]/server/c:/'
)|(?!(?&montage)))(?# '//[addressIP/ or serverName/ but not C:/]'
)|%\w+%[\/\\]?(?# '%EnvVariable%[/]'
))(?# So, <opening> catch :
'C:/' or
'//[?or.]/[UNC/]C:/' or
'//[?or.]/[UNC/]' or
'//[next characters must be something other than C:/]' or
'%EnvironementVariable%[/]'
)(?:(?# now, we catch each directory name wich is between [/] ########################
)[^\/\\<>:"|?\n\r ,'](?# the first character should not be [ ,']
)[^\/\\<>:"|?\n\r]*(?# Any pathFrendly character
)(?<![ ,'])(?# The last directory name's character must not be [ ,']
)[\/\\](?# End of directory name - who are between '/' -
))*(?# Catch most 'directoryName/' as possible
)(?:(?# Lets catch the End path. There is a file ? a directory ? or just a useless '/' ?
)(?=[^\/\\<>:"'|?\n\r;, ])(?#if next character is not pathFriendly or ' ' or [,'], we have reach the end of the path => we don't catch the last '/' and the the Regex end now.
You can't catch fileName who begin by [,'] because they are probably a delimiter between 2 path. but '.' is allowed
)(?:(?#If we are here, that mean there is a fileName or directoryName to catch
###### We will catch the last directoryName or the fileName without the extention ######
)(?:[^\/\\<>:"|?\n\r;, .](?# catch any character pathFriendly exept ' ' or [,.]
)(?: (?=[\w\-]))?(?# If we find a ' ', we catch him if next charcter is not a delimiter. I see '-' after an ' ' not like a delimiter.
)(?:\*(?!= ))?(?# If we find a '*', we stop the catch if next character is an ' '
)(?!(?&montage))(?# If we find a string who look like 'C:/', we stop the catch
))+(?# We catch theses word delimited by ' ' as much as possible
))?(?# it's possible the fileName have no name, but just an extention
)(?:\.\w+(?# #### an extention begin by '.' and at least one none delimiter chracter
))*(?# we can add more extention until the first none '.' delimiter character. So, after the first '.' character inside a fileName, we cannot catch any ' ' character
If we don't find one extention, so the filename is a directory name, and we stop the catch.
))(?# ############# END OF PATH CATCHING WITHOUT QUOTE "" and '' #######################
)|(?:(?# ######### Catching path quoted '' ###########################
Path quoted '' is difficult because ['] is also a pathFrendly character
)'(?&opening)(?# We catch .* between quote only if string start with an <opening>
)(?=.*'\W|.*'$)(?# We catch .* between quote only if we are sure we will find end quote. End quote must be ['] and delimiter character or ['] and end string
)(?:[^\/\\<>:'"|?\n\r]+(?# We take any pathFriendly character exept quote [']
)(?:'(?=\w))?(?# we catch quote ['] if next character is not a delimiter
)[\/\\]?)*(?# Path quoted must respect this patern until end quote character [']
)')(?# end quoted '' path
)|(?# ######### Catching path quoted "" ###########################
)"(?&opening)(?# We catch .* between quote only if string start with an <opening>
)(?=.*")(?# We catch .* between quote only if we are sure we will find end quote ["]
)(?:[^\/\\<>:"|?\n\r]+(?# We take any pathFriendly character
)[\/\\]?(?# pathFriendly characters can be is delimited by '\'
))*(?# Path quoted must respect this patern until end quote character
)"(?# end quoted path
)/gPCRE2+03 years ago✓ Pre-loaded
About this regex
This PCRE2 regex extracts Windows file system paths—including drive letters (e.g., C:/), UNC paths (//server/), and environment variables (%WINDIR%/)—from unstructured text. It explicitly avoids matching HTTP/HTTPS URLs and accurately handles filenames with spaces or multiple extensions. Additionally, it robustly supports unquoted paths as well as those enclosed in single or double quotes, making it ideal for parsing logs or extracting file locations.