Python SublimiteText2插件设置:DocBlockr插件中正则表达式的转义美元符号';s设置
对于 用于根据变量名称声明自定义变量类型规则 自述文件:Python SublimiteText2插件设置:DocBlockr插件中正则表达式的转义美元符号';s设置,python,regex,escaping,sublimetext,sublimetext2,Python,Regex,Escaping,Sublimetext,Sublimetext2,对于 用于根据变量名称声明自定义变量类型规则 自述文件: "jsdocs_notation_map": [{ "regex": "tbl_?[Rr]ow", // any arbitrary regex to test against the var name "type": "TableRow" // you can add your own types }] 我想捕获以$字符开头的变量 例如: 因此,$header将从上述正则表达式中捕获 不幸的是,上述方法不起作用。插件
"jsdocs_notation_map": [{
"regex": "tbl_?[Rr]ow", // any arbitrary regex to test against the var name
"type": "TableRow" // you can add your own types
}]
我想捕获以$
字符开头的变量
例如:
因此,$header
将从上述正则表达式中捕获
不幸的是,上述方法不起作用。插件无法识别我的$header
变量
作为“HTMLElement”
我尝试了以下正则表达式字符串:
-它匹配所有内容,甚至是内部没有$
的变量名$
\\$
\\\$
$$
\\$$
\\\$$
[$]
[\\$]
\
它们都不匹配,除了第一个匹配所有东西
这不是一个正则表达式问题。应该工作的正则表达式(例如:^[$].+
)由于$字符而无法工作。我认为这与插件设置机制以及python解析机制如何使用$有关
旁注:“^[.].+”
正则表达式按预期工作
欢迎任何帮助
PS:如果有人能提供帮助,我希望正则表达式字符串开头的“^”。我不认为它不能开箱即用,但如果不能,请分享这方面的知识。$是行尾,所以您可以尝试将其放在方括号中,作为另一种尝试来逃避它。。。所以像[$][^\s]+
“\\$”
这样的东西应该可以工作。第一个\
转义第二个用于JSON。然后,这将生成正则表达式,该正则表达式与文字美元匹配。“^[$].*”
^
强制对行的开头进行匹配。这里的[]
用于转义$
(这比计算需要多少层反斜杠更容易),并且+*
匹配后面的所有内容。如果要匹配一个或多个字母数字/下划线字符,可以将*
替换为[a-zA-Z0-9\]+
。哦,嘿。。。因此,插件所做的是从变量/函数名中去掉任何前导的$
或
,然后应用正则表达式。这是为了让\u foo
$foo
和foo
都可以用相同的正则表达式识别,因为当时我没有想到这些字符有特殊的含义。看起来最终它实际上是一个完全错误的特征。看来你已经花了一点时间在上面了,对不起
我现在有点累了。将来,这也是吸引我注意的一个好方法:)我将你的正则表达式编辑成内联代码-我不确定你最初打算显示多少反斜杠,因为去掉了一些。您可能需要再次检查它们是否符合您的要求。^是行的开头“^是字符串的开头。一般来说,是的,我将进行编辑以使其更清晰。在本例中,
matched=re.search(rule['regex'],name)
字符串的开头是行的开头<代码>v=“$my_变量”;重新搜索(“^[$].*”,v)会返回匹配项。(我假设,在上面链接的代码中,name
指的是一个标记,而不是整行文本。)我理解上面的内容。不幸的是,如果正则表达式中有$sign,它就不能像插件设置文件中所使用的那样工作。这已经被修复并部署了。如果有任何问题,请告诉我。
"jsdocs_notation_map": [{
"regex": "^[$].+", // any word that starts with $
"type": "HTMLElement" // That is its type
}]