我必须使用正则表达式检查文件名的格式。 有些文件名将包含以下格式:
*_*_*.key
问题是任何字符串都匹配*,因此格式为*_*_*_*_*_*_*.key
的文件名也会匹配上面提到的正则表达式。
我正在考虑计算下划线的数量(_),但有没有办法检查使用正则表达式?
谢谢!
答案 0 :(得分:2)
使用此正则表达式^([^_]_)+[^_]\.key$
insted +
你可以写下破折号码。{2}
正则表达式将是^([^_]_){2}[^_]\.key$
答案 1 :(得分:1)
使用negated character class匹配除下划线以外的任何内容:
^[^_]+_[^_]+_[^_]+\.key$
仅当您要允许零字符时才使用*
而不是+
。
^[^_]*_[^_]*_[^_]*\.key$