繁体   English   中英

正则表达式验证文件名失败

Regex validation of filename failing

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试验证带有字母“ CAT”或“ DOG”后跟8个数字并以“ .TXT”结尾的文件名。

例子:

CAT20000101.TXT
DOG20031212.TXT

这将不匹配:

ATA12330000.TXT
CAT200T0101.TXT
DOG20031212.TX1

这是我要制作的正则表达式:

(([A-Z]{3})([0-9]{8})([\.TXT]))\w+

为什么最后一节(.TXT)无法匹配不匹配的文件扩展名?

参见示例: http//regexr.com/3a7fo

4 个回复

在字符类内部,没有正则表达式分组,因此[\\.TXT]不正确。

您可以使用此正则表达式:

^[A-Z]{3}[0-9]{8}\.TXT$

对于仅匹配的CATDOG使用:

^(CAT|DOG)[0-9]{8}\.TXT$
  1. 丢掉不必要的括号

[AZ]{3}[0-9]{8}[\\.TXT]\\w+

  1. 丢失\\.TXT周围不必要的/破坏样式的字符类[]

[AZ]{3}[0-9]{8}\\.TXT\\w+

  1. 最后失去\\w+

[AZ]{3}[0-9]{8}\\.TXT

  1. [AZ]{3}更改为(?:CAT|DOG)

(?:CAT|DOG)[0-9]{8}\\.TXT

瞧。

失败是因为\\.TXT在方括号中,该方括号仅匹配这四个字符之一。 只需使用(\\.TXT)

删除[.TXT]到.TXT周围的方括号您的示例已修改http://regexr.com/3a7fu

7 C正则表达式验证文件夹下的文件名

我是C语言中的正则表达式的新手,我试图通过regex.h库使用regex查找给定的文件名是否在文件夹下。 这是我尝试过的: 我的第一次尝试是,如果它包含.. (我什至无法做到)与noDubleDots不noDubleDots 。 但随后我进行了测试,发现文件名和文件夹名中可以包含.. ...

8 python正则表达式:解析文件名

我有一个文本文件 (filenames.txt),其中包含文件名及其文件扩展名。 这些是示例文件名及其扩展名。 我需要使用剧集编号重命名文件名(不更改其扩展名)。 例子: 希望有人能帮我解析和重命名这些文件名。 提前致谢!!! ...

9 使用正则表达式测试文件名

我正在尝试使用此模式测试文件名字符串: 我想确保有一个三个字母的扩展名并允许字母、数字和这些符号: - _ 、 \\s 在它之前,但我不想在文件名中包含所有字母和字符。 我可以只使用 * 而不是 + 但这会匹配 0 或更多,这不是有效的文件名。 以下是规则应如何反应的一些示例: 如果有人能 ...

2011-07-20 21:28:29 2 108013   regex
10 正则表达式替换文件名

我有一个很大的XML文件,其中很多引用指向不同的文件名,所有PDF文件。 我想用一个特定的文件名替换所有不同的文件名。 我正在使用Notepad ++ 。 例如: 将所有这些替换为whale.pdf 。 我已经搜索,搜索,尝试和失败了很长时间,但是我无法使其正常工作。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM