此正则表达式适用于SublimeText搜索字段:
([^\/]+\.java)
如果我在.sublime-build
文件中使用该正则表达式:
\.
以红色突出显示,当我注释掉行"file_regex": "([^\/]+\.java)"
时,可以识别构建系统。
{
"cmd": ["gradle" , "build"],
"working_dir": "${project_path}",
"file_regex": "([^\/]+\.java)"
}
问题:为什么搜索中使用的正则表达式不适用于.sublime-build
文件?
答案 0 :(得分:1)
.sublime-build
文件使用JSON文件格式。
你需要为JSON转义反斜杠来处理它并将反斜杠传递给正则表达式。
像这样:
"file_regex": "([^\/]+\\.java)"
由于构建系统将在Python底层的Sublime Text中使用,让我们自己确保Python会像我们期望的那样阅读它。
测试Python代码:
import re
builddict = {
"cmd": ["gradle" , "build"],
"working_dir": "${project_path}",
"file_regex": "([^\/]+\\.java)"
}
re_pattern = builddict['file_regex']
prog = re.compile(re_pattern)
teststrings = ['aaa.java', 'aaajava']
for teststring in teststrings:
result = prog.search(teststring)
if result is None:
print(teststring + ' no match')
else:
print(teststring + ' matched')
<强>输出:强>
aaa.java matched
aaajava no match
我认为符合你想要的输出?