Not really sure what you're doing there, as your “URI” is seemingly already a regex.
But to match a slash (/
) embedded between alphanumeric characters, you can use:
/(?<=[a-zA-Z0-9]/)(?=[a-zA-Z0-9])
A positive lookbehind and lookahead make sure that the slash is indeed between two alphanumeric characters.
Test in Windows PowerShell:
PS Home:\> $uri='http://stackoverflow.com/questions/2259778/simple-regex-url-related-matching-help'
PS Home:\> [regex]::matches($uri, '(?<=[a-zA-Z0-9])/(?=[a-zA-Z0-9])') | ft -auto
Groups Success Captures Index Length Value
------ ------- -------- ----- ------ -----
{/} True {/} 24 1 /
{/} True {/} 34 1 /
{/} True {/} 42 1 /
ETA: If I understood you correctly you want to replace slashes embedded between two alphanumeric characters by \/
to escape them, right?
Then replacing the following
([a-zA-Z-0-9])/([a-zA-Z-0-9])
by
\1\\/\2
should work. This doesn't capture the slash only (as above method; due to limitations of Notepad++) therefore we have to reinsert the surrounding characters as well.
However, you probably want to search for unescaped slashes anyway. So replacing
([^\\])/
by
\1\\/
would make more sense, I think. This searches for a slash that is not preceded by a backslash.