如何匹配文件名中的单个 . 而不是两个 .?

如何匹配文件名中的单个 . 而不是两个 .?

在正则表达式中,我想我想要.*\..*->匹配所有具有任意字符、单点、所有字符的文件。

在 unix 文件命名模式匹配中,有没有办法做到这一点,因为*.*匹配带有两个 . 的文件名。当我只希望它匹配所有 release_4.18 文件时,它将匹配 release_4.18.1 文件。

我正在使用 github 分支保护名称匹配,所以我无法在 bash 或其他任何东西中执行花哨的命令 :(

答案1

也许像这样

^[^.]*\.[^.]*$
  • 这里我们通过 [^.]* 匹配任意数量的非点字符,然后匹配一个点,然后再匹配任意数量的非点字符。

  • 由于正则表达式中的点表示匹配任何字符,因此我们将其转义以匹配文字点。

  • ^ 和 $ 是字符串标记的开始和结束,因此我们不会匹配多个内容。

相关内容