我有一个代码,可以通过以下行扫描文件夹中的文件名:
fileNum = re.findall(r'T([0.-999.])\.txt',inputName)
这将正确读取具有以下类型名称的文件:T12.txt、T13.3.txt。在
现在我有一些文件在文件名中也包含特殊字符+和-的文件名:T13_B+14.txt,T13_B-15.txt,T13_B0.0.txt等(唯一的变量是带符号的B factor)。为了包含+符号作为阅读的特殊字符,我将该行修改为:
^{2}$现在可以正确读取文件名中带有+的文件。所以我要分别跑+和-。在
问:如何在文件名中包含任何字符以供阅读(如[\w+])?在
所以您尝试匹配
Tdigits
格式的所有字符,然后可能匹配.txt
之前的其他字符。所以把它作为正则表达式来匹配[0.-99.]
不是你想的那样。它表示09.
或.-9
范围内的一个字符./0123456789
。要匹配一个或两个数字,请使用\d{1,2}
或{\w
字符或+
或-
字符,请使用[\w+-]
。在您当前的常规表达式将匹配每个输入字符串。你忘了遮住这些点,所以你会接受每个字符。在
要接受字符
T
、B
、0
、1
、[…]、9
、+
、-
、_
字符,需要使用以下正则表达式:然而,正如在评论中指出的,Reza在这种情况下需要另一个正则表达式:
^{pr2}$它接受所有以
T13_B
为前缀,后跟任何数字、点、加号和减号以及后缀.txt
的文件。在相关问题 更多 >
编程相关推荐