正则表达式匹配单个字符文件名与扩展名

时间:2017-12-29 14:57:17

标签: regex boost filenames

我需要找到任何包含单个字符文件名且扩展名为1-3个字符的文件。

我花了一些时间寻找如何做到这一点,但无法找到正确的正则表达式组合。我正在使用一个需要boost regex的解决方案,我认为它类似于perl regex。

以下是一些应该匹配的例子:

1.exe
a.c
-.zip  (a hyphen is ok for the first part of the filename)

这些示例不匹配:

1 (doesn't have an extension)
1a.exe (has 2+ chars before the period)

我尝试过的例子:

^[.]+\.[a-z0-9]{1,3}$
^[a-z0-9]+\.[a-z0-9]{1,3}$
^[\w]\.[\w]{1,3}$
^([0-9a-z]{1})\..{1,3}

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

^[\w\-]\.\w{1,3}$

<强>解释

  • 从字符串^
  • 的开头
  • 匹配单词字符或连字符^[\w\-]
  • 匹配点\.
  • 匹配一到三次的单词字符
  • 字符串$
  • 的结尾

或更受限制而不是\w

^[a-zA-Z\d\-]\.[a-zA-Z]{1,3}$