gpt4 book ai didi

REGEX - 如何在文件名中查找两个连字符?

转载 作者:行者123 更新时间:2023-12-04 16:36:15 25 4
gpt4 key购买 nike

我想搜索包含两个连字符(仅)的文件名。有些文件名有一个连字符,我只想要名称中有两个连字符的文件名:

这个:一些文本 - 更多文本 - 还有更多.txt

不是这个:一些文本 - 更多文本.txt

连字符总是被空格包围,FWIW。

我尝试使用 (.*) - (.*) - (.*) 和几个变体,但结果不是我想要的。当我尝试各种组合时,我要么什么也得不到,要么文件名只有一个连字符。

我知道这是一个显而易见的问题,但我尝试过阅读有关贪婪前瞻等的正则表达式教程,但我一辈子都做不到解决这个问题。有人可以帮忙吗?我不只是在寻找解决方案——我想了解我在正则表达式语法中做错了什么。

最佳答案

您可以使用此正则表达式,

^[^-]*(?:-[^-]*){2}$

以扩展形式编写时,它看起来像这样,

^[^-]*-[^-]*-[^-]*$

这就是您想要的方式,但我通过使用量词将连字符的出现限制为仅两次来压缩它。

<强> Demo

如果您想扩展您的正则表达式,只需将 .* 更改为 [^-]* 即可使您的正则表达式如此,否则 .* 也会匹配额外的连字符,从而导致意外的匹配结果。

^([^-]*) - ([^-]*) - ([^-]*)$

请注意,您应该使用开始 ^ 和结束 $ anchor 来使文件名与整个正则表达式匹配。

<强> Demo with your modified regex

关于REGEX - 如何在文件名中查找两个连字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55265154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com