文件名后面应包含3个或更多字符。和文件扩展名的类型:pdf,doc,html。 这是我正在使用的正则表达式,但它不起作用。
/^[A-Za-z]{3}\.?[pdf]|[doc]|[html]$/
它出了什么问题?
答案 0 :(得分:3)
您滥用了与1个符号匹配的字符类([...]
),用于对用于对符号序列的备选项进行分组的构造((...)
)进行分组。另外,您将.
声明为?
的可选项,但不应该(根据您的规范)。此外,3个或更多意味着您需要{3,}
限制量词,而不是{3}
(恰好匹配量化子模式的3次出现)。
使用
/^[A-Za-z]{3,}\.(?:pdf|doc|html)$/
请参阅regex demo。
或者,使整个模式不区分大小写:
/^[a-z]{3,}\.(?:pdf|doc|html)$/i
^
模式详情:
^
- 字符串开头[A-Za-z]{3,}
- 3个或更多ASCII字母\.
- 一个文字点(?:pdf|doc|html)
- 与pdf
,doc
或html
字符序列匹配的非捕获组$
- 字符串结尾