捕获整个字符串的捕获组减去与模式匹配的部分

时间:2015-01-05 00:21:33

标签: regex

我不确定这是否可行,但我想我还是会问。我需要做的是有效地创建搜索/替换,但不使用正则表达式s / pattern1 / pattern2 /语法,因为它不直接暴露给我。

是否可以创建一个捕获组,该捕获组将采用图像路径,扩展前的图像大小并删除图像大小。

例如,仅使用捕获组而不使用搜索/替换位将http://example.com/path/to/image/filename-200x200.jpg转换为http://example.com/path/to/image/filename.jpg

我问我正在使用的软件目前没有搜索/替换功能。

1 个答案:

答案 0 :(得分:0)

这有点可能。除了源文本的连续片段之外,没有内置的匹配功能,但你可以解决这个问题。

您可能考虑的一种方法是使用非捕获组和连接。在正则表达式中,以?:开头的组不会被捕获为匹配项。

例如,给定正则表达式(A)(?:B)(C)和字符串"AB",结果将为:

1. "A"
2. "C"

在您的情况下,您可以捕获要忽略的部分,然后连接所需的部分。

根据您提供的字符串http://example.com/path/to/image/filename-200x200.jpg,正则表达式(.+)(?:-200x200)(.+)会返回:

1. "http://example.com/path/to/image/filename"
2. ".jpg"

然后,您可以添加第一个和第二个捕获组以产生预期结果。