获取以下 URI:
http:\/\/.*\.google\.com/search/results\.php*
我只是想匹配给定 URI 中两个字母数字字符之间的所有单个正斜杠 ( / )。在上面的例子中,搜索和结果之前的两个。你能指出我正确的方向吗?
编辑
目的是使用 Notepad++ 进行搜索和替换。
获取以下 URI:
http:\/\/.*\.google\.com/search/results\.php*
我只是想匹配给定 URI 中两个字母数字字符之间的所有单个正斜杠 ( / )。在上面的例子中,搜索和结果之前的两个。你能指出我正确的方向吗?
编辑
目的是使用 Notepad++ 进行搜索和替换。
不太确定你在那里做什么,因为你的“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\\/
会更有意义,我想。这将搜索前面没有反斜杠的斜杠。
http://。.google.com/search/results.php