首页 > 解决方案 > 正则表达式 - 文件名与所需模式不匹配

问题描述

试图找出为什么这个文件名与这个正则表达式模式不匹配:

我允许名称和只有一个文件扩展名:

扩展模式是失败的模式,我不明白为什么。

测试用例:

标签: regex

解决方案


试试这个:

^([a-zA-Z0-9_-]+)\.([a-zA-Z0-9]+)$

您只需将一个术语括在括号中(,并且)如果您真的希望正则表达式引擎捕获它们(这样您就可以从匹配中获取它们的值)。如果你不需要捕获它们,你只是想查找一段文本是否匹配,你可以从这个正则表达式中去掉括号。

[.]您可以简单地使用反斜杠转义敏感字符,而不是使用略显笨拙的外观来表示文字句点字符: \.

此外,默认情况下,正则表达式将期望一个序列只匹配一次,因此您不需要遵循一个术语,{1}因为这是默认设置。

而且我不确定您打算将完全包含在方括号中的术语[和.][a-zA-Z0-9_-]


推荐阅读