我正按名称分析文件。
要排除的示例文件名:
Kickloop [124].wav
要包含的示例文件名:
Boomy [Kick].wav
我的代码目前忽略所有文件名,包括方括号。
def contains_square_brackets(file):
if ("[" in file) and ("]" in file):
return True
问题:是否有正则表达式来实现我的目标?
答案 0 :(得分:4)
正则表达式r'\[\d+\]'
会对您有所帮助。如果使用正确,它将识别包含一个或多个数字的方括号的字符串。
示例:
>>> import re
>>> def has_numbers_in_square_brackets(s):
... return bool(re.search(r'\[\d+\]', s))
...
>>> has_numbers_in_square_brackets('Hello')
False
>>> has_numbers_in_square_brackets('Hello[123]')
True
>>> has_numbers_in_square_brackets('Hello[dog]')
False
答案 1 :(得分:0)
使用pythons stdlib RealmObject
模块进行正则表达式匹配。
什么是正则表达式?
正则表达式是一种特殊的字符序列,可帮助您使用模式中保存的专用语法来匹配或查找其他字符串或字符串集。
如何使用re
模块进行正则表达式匹配?
您可以使用此http://servername/serverupdates/deploy/Program%20Files/来帮助您进一步理解。
您正在寻找的模式是re
,这意味着在开始和结束的方括号内寻找一个恒定的数字流。
但这将是我使用该模块解决您的问题的方法:
\[\d+\]
答案 2 :(得分:0)
<强>代码:强>
import re
re_pattern = '\[(\d*)\]'
prog = re.compile(re_pattern)
teststrings = ['Kickloop [124].wav', 'Kickloop [aaa].wav']
for teststring in teststrings:
result = prog.search(teststring)
if result is None:
print(teststring + ' no match')
else:
print(teststring + ' matched')
<强>输出:强>
Kickloop [124].wav matched
Kickloop [aaa].wav no match