首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >file_regex打破崇高的构建

file_regex打破崇高的构建
EN

Stack Overflow用户
提问于 2017-12-26 03:04:22
回答 1查看 144关注 0票数 1

此正则表达式适用于SublimeText搜索字段:

代码语言:javascript
复制
([^\/]+\.java)

如果我在.sublime-build文件中使用该正则表达式:

  • \.以红色高亮显示,并且
  • 建立的制度没有得到承认。

当我注释掉行"file_regex": "([^\/]+\.java)"时,构建系统就被认可了。

代码语言:javascript
复制
{
  "cmd": ["gradle" , "build"],
  "working_dir": "${project_path}",
  "file_regex": "([^\/]+\.java)"
}

问题:为什么在搜索中工作的正则表达式不能在.sublime-build文件中工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-05 04:34:54

.sublime-build文件使用JSON文件格式。

您需要为JSON转义反斜杠来处理它,并将反斜杠传递给regex。

如下所示:

代码语言:javascript
复制
"file_regex": "([^\/]+\\.java)"

由于构建系统将在Python底层崇高文本中使用,让我们放心,Python将像我们所期望的那样阅读它。

测试Python代码:

代码语言:javascript
复制
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')

输出:

代码语言:javascript
复制
aaa.java matched
aaajava no match

我想这能满足你想要的输出?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47973525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档