Sublime Text 2:查找斜杠之间的所有 8 位数字序列并替换

Sublime Text 2: Find all 8 digit sequences between slashes and replace

提问人:Derek 提问时间:11/22/2021 更新时间:11/22/2021 访问量:350

问:

我在 Sublime Text 2 中加载了一个 SQL 文件,其中包含数百个我需要查找和替换的字符串。我一直在一个接一个地做它们,因为我找不到正则表达式示例,而且我对正则表达式了解不多。

在我的文件中,有类似于以下内容的 URL:

https://cdn.mydomain.com/wp-content/uploads/2020/05/20125258/image1.jpg

https://cdn.mydomain.com/wp-content/uploads/2021/10/13440323/image-ex2.jpg

https://cdn.mydomain.com/wp-content/uploads/2012/01/92383422/my-image3.jpg

等等......

有没有办法找到并选择位于图像文件名之前的所有 8 个数字规则,以便我可以删除它们?

正则表达式 sublimetext2 sublimetext

评论

0赞 Cary Swoveland 11/22/2021
您应该避免在链接中显示代码和数据,因为链接有被破坏的趋势,使您的问题毫无意义。更糟糕的是,链接指向代码或数据的图片。您是否希望读者输入这些信息来展示他们提出的解决方案?...
0赞 Cary Swoveland 11/22/2021
...相反,提供包含一个或多个示例的文本(读者可以剪切和粘贴),并为每个示例显示所需的结果。

答:

2赞 Derek 11/22/2021 #1

一旦我发布问题,我就会找到答案。对于其他寻找类似内容的人:

第一个括号匹配所有斜杠 括号捕获组,在本例中为数字组 搜索 0 到 9 之间的数字范围是量词,它就在那里,所以我们寻找一组 8 个数字[/]([0-9])[0-9]{8}

也就是说,我需要的表达式是它将在斜杠之间选择所有 8 个数字组,例如:[/]([0-9]){8}[/]

https://cdn.mydomain.com/wp-content/uploads/2020/05**/20125258/**image1.jpg

https://cdn.mydomain.com/wp-content/uploads/2021/10**/13440323/**image-ex2.jpg

https://cdn.mydomain.com/wp-content/uploads/2012/01**/92383422/**my-image3.jpg

就其价值而言,这个网站在编写本文和测试它方面帮助了我很多 https://regexr.com/

0赞 Ryszard Czech 11/22/2021 #2

/\d{8}/

请参阅正则表达式证明

解释

--------------------------------------------------------------------------------
  /                       '/'
--------------------------------------------------------------------------------
  \d{8}                    digits (0-9) (8 times)
--------------------------------------------------------------------------------
  /                       '/'

如果要排除斜杠:

(?<=/)\d{8}(?=/)

请参阅另一个正则表达式证明

解释

--------------------------------------------------------------------------------
  (?<=                     look behind to see if there is:
--------------------------------------------------------------------------------
    /                        '/'
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  \d{8}                    digits (0-9) (8 times)
--------------------------------------------------------------------------------
  (?=                      look ahead to see if there is:
--------------------------------------------------------------------------------
    /                        '/'
--------------------------------------------------------------------------------
  )                        end of look-ahead