采用以下URI:
http:\/\/.*\.google\.com/search/results\.php*
我只是尝试匹配给定URI中两个字母数字字符之间的所有单正斜杠(/)。在上面的例子中,两个就在搜索和结果之前。你能指出我正确的方向吗?
修改
目的是使用Notepad ++进行搜索和替换。
答案 0 :(得分:1)
不确定你在那里做什么,因为你的“URI”似乎已经是一个正则表达式了。
但要匹配字母数字字符之间嵌入的斜杠(/
),您可以使用:
/(?<=[a-zA-Z0-9]/)(?=[a-zA-Z0-9])
正面的后视和前瞻确保斜线确实在两个字母数字字符之间。
在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:如果我理解正确,您想要用\/
替换两个字母数字字符之间嵌入的斜杠来逃避它们,对吗?
然后替换以下
([a-zA-Z-0-9])/([a-zA-Z-0-9])
通过
\1\\/\2
应该有效。这不会仅捕获斜杠(如上所述;由于Notepad ++的限制),因此我们也必须重新插入周围的字符。
但是,您可能还是想要搜索未转义斜杠。所以更换
([^\\])/
通过
\1\\/
我想,会更有意义。这会搜索一个前面没有反斜杠的斜杠。
答案 1 :(得分:1)
HTTP:// .google.com /搜索/ results.php