1

获取以下 URI:

http:\/\/.*\.google\.com/search/results\.php*

我只是想匹配给定 URI 中两个字母数字字符之间的所有单个正斜杠 ( / )。在上面的例子中,搜索和结果之前的两个。你能指出我正确的方向吗?

编辑

目的是使用 Notepad++ 进行搜索和替换。

4

2 回答 2

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\\/

会更有意义,我想。这将搜索前面没有反斜杠的斜杠。

于 2010-02-14T01:11:44.770 回答
1

http://。.google.com/search/results.php

于 2010-02-14T01:17:46.620 回答