Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在两个正斜杠之间匹配特定字符串_Regex - Fatal编程技术网

Regex 在两个正斜杠之间匹配特定字符串

Regex 在两个正斜杠之间匹配特定字符串,regex,Regex,我需要找到两个正斜杠之间的所有%20 example.com/book%20/picture1.jpg example.com/book%20/picture2.jpg example.com/book%20/picture3.jpg example.com/pages/picture%20book1.jpg example.com/pages/picture%20book2.jpg example.com/pages/picture%20book3.jpg 它应该找到前3个链接,而不是最后3

我需要找到两个正斜杠之间的所有%20

example.com/book%20/picture1.jpg
example.com/book%20/picture2.jpg
example.com/book%20/picture3.jpg
example.com/pages/picture%20book1.jpg
example.com/pages/picture%20book2.jpg
example.com/pages/picture%20book3.jpg
它应该找到前3个链接,而不是最后3个


我似乎无法理解。

这满足了两个正斜杠之间的“%20”要求

/\/[^/]*%20[^/]*\//

\/       literal "/"
[^/]*    every character except for a slash, zero or more occurences
%20      literal "%20"
[^/]*    every character except for a slash, zero or more occurences
\/       literal "/"

这样的RE可以用于验证,如果用于匹配两个斜杠之间的文本,则可以使用
%20
,包括前导斜杠和尾随斜杠。

这满足了两个正斜杠之间的“%20”要求

/\/[^/]*%20[^/]*\//

\/       literal "/"
[^/]*    every character except for a slash, zero or more occurences
%20      literal "%20"
[^/]*    every character except for a slash, zero or more occurences
\/       literal "/"

这样的RE可以用于验证,如果用于匹配两个斜杠之间的文本,并使用
%20
,包括前导和尾随斜杠。

如果您使用的正则表达式实现支持任意长的环视结构(如.NET),则可以使用

(?<=.*/)%20(?=.*/)

(?如果您使用的正则表达式实现支持任意长的环视结构(如.NET),则可以使用

(?<=.*/)%20(?=.*/)

(?我在.Net中尝试了这一个,它返回了前三个链接。我不是一个喜欢正则表达式的人,所以这很可能比我的示例更优雅

(\w*\.*)*/(\w*)*%20(\w*)*/(\w*\.*)*

我在.Net中尝试了这一个,它返回了前三个链接。我不是一个喜欢正则表达式的人,所以这很可能比我的示例更优雅

(\w*\.*)*/(\w*)*%20(\w*)*/(\w*\.*)*

@Lekensteyn是对的,但跳过了对字符类
[^/]*
中正向斜杠的转义

而不是:

/\/[^/]*%20[^/]*\//
使用:


@Lekensteyn是对的,但跳过了对字符类
[^/]*
中正向斜杠的转义

而不是:

/\/[^/]*%20[^/]*\//
使用:


请显示您当前的代码。可能是因为最后三个代码不在两个正斜杠之间?请显示您当前的代码。可能是因为最后三个代码不在两个正斜杠之间?我试图在UltraEdit中使用它,但它似乎无法根据以下条件进行翻译:
/[~/]+^%20[~/]++/
非常接近!它会一直延续到下一行,直到它碰到另一个正斜杠…请注意,我在末尾添加了一个不同的标记,它就开始工作了!非常感谢各位!我正试图在UltraEdit中使用它,但它似乎无法根据以下条件进行翻译:
/[~/]+^%20[~/]++/
非常接近!但它会一直延续到下一行,直到它碰到另一个正斜杠…请注意,我在末尾添加了一个不同的标记,它会起作用!非常感谢各位!这是问题的答案。这是问题的答案。