当前位置:  开发笔记 > 编程语言 > 正文

如何将以下文件名转换为Python中的正则表达式?

如何解决《如何将以下文件名转换为Python中的正则表达式?》经验,为你挑选了1个好方法。

我正在打字时正在与正则表达式作斗争.

我想确定以下示例文件的模式:b410cv11_test.ext.我希望能够搜索与上述示例文件的模式匹配的文件.我从哪里开始(如此迷失和困惑)以及获得最符合文件模式的解决方案的最佳方法是什么?提前致谢.

进一步澄清问题:

我希望模式如下:必须以'b'开头,后跟三位数字,然后是'cv',接着是两位数字,然后是下划线,接着是'release',接着是.'ext'



1> 小智..:

既然你有一个人类可读的文件名描述,那么将其翻译成正则表达式是非常简单的(至少在这种情况下;)

必须从

插入符号(^)将正则表达式锚定到您想要匹配的开头,因此您必须从此符号开始.

'B',

你的re中的任何非特殊字符都会按字面意思匹配,所以你只需使用"b"表示这一部分:^b.

接着是[...]位数,

这取决于你使用哪种味道:

表达这一点的最常用方法是使用方括号([]).这些意思是"匹配其中列出的任何一个字符.[ASDF]例如,匹配任一ASDF,[0-9]将匹配0到9之间的任何内容.

您的库可能有"任何数字"的快捷方式.在sedawk你可以使用[[:digit:]][sic!],在python和许多其他语言,你可以使用\d.

所以现在你重读^b\d.

其次是三个[...]

表达这个的最简单的方法就是像这样重复原子三次:\d\d\d.

您的语言可能会提供一个快捷方式:大括号({}).有时您必须使用反斜杠来逃避它们(如果您使用sed或awk,请阅读"扩展正则表达式").他们还给你一种方式来说"至少x,但不超过前一个原子的y出现":{x,y}.

现在你有: ^b\d{3}

然后是'cv',

文字匹配再次,现在我们有 ^b\d{3}cv

后跟两位数,

我们已经涵盖了这个:^b\d{3}cv\d{2}.

然后是下划线,然后是'release',然后是.'ext'

同样,这应该完全匹配,但dot(.)是一个特殊字符.这意味着你必须用反斜杠来逃避它:^\d{3}cv\d{2}_release\.ext

省略反斜杠意味着像"b410cv11_test_ext"这样的文件名也会匹配,这对你来说可能是也可能不是问题.

最后,如果你想保证".ext"之后没有其他内容,请将re锚定到要匹配的东西的末尾,使用美元符号($).

因此,针对您的特定问题的完整正则表达式将是:

^b\d{3}cv\d{2}_release\.ext$

简单.

无论您使用何种语言或库,都必须在文档中的某处提供参考,以便向您展示您的案例中的确切语法.一旦您学会将问题分解为合适的描述,就会逐步了解更高级的结构.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有