DocBlockr 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
}]
我想要捕获以$
字符
示例:的
"jsdocs_notation_map": [{
"regex": "^[$].+", // any word that starts with $
"type": "HTMLElement" // That is its type
}]
这样$header
将从上述正则表达式中捕获。
不幸的是,上述方法无效。该插件无法识别我的$header
变量
作为“HTMLElement”。
我尝试过以下正则表达式字符串:
$
- 它匹配所有内容,甚至是内部没有$
的varnames。\\$
\\\\$
$$
\\$$
\\\\$$
[$]
[\\$]
旁注:编辑不允许我插入奇数\
。
所有这些都不匹配,除了第一个匹配所有东西。
这不是RegEx问题。应该有效的RegEx,(例如:^[$].+
)因为$字符而无法正常工作。我认为它与插件设置机制以及python解析机制如何使用$有关。
旁注:"^[.].+"
RegEx按预期工作。
欢迎任何帮助
PS:如果有人可以提供帮助,我希望在正则表达式字符串的开头有“^”。我不认为它不会开箱即用,但如果没有,请分享相关知识。
答案 0 :(得分:1)
哦,嘿......所以插件的作用是从变量/函数名中删除任何前导$
或_
,然后应用正则表达式。这是因为_foo
$foo
和foo
都可以使用相同的正则表达式进行识别,因为当时我并没有考虑那些具有特殊含义的字符。看起来它实际上是一个完全错误的结果。看起来你已经花了一些时间来攻击它,抱歉'回合那个。
我现在added it to the issue tracker。在将来,这也是引起我注意的好方法:)
答案 1 :(得分:0)
$是行尾,所以你可以尝试把它放在方括号中作为逃避它的替代尝试...所以像[$] [^ \ s] +
答案 2 :(得分:0)
"\\$"
应该有效。第一个\
转义第二个用于JSON。然后生成正则表达式\$
,它匹配文字美元。
答案 3 :(得分:0)
"^[$].*"
^
强制匹配行的开头。这里的[]
用于逃避$
(比确定你需要多少层反斜杠更容易),+*
匹配后面的所有内容。如果您想匹配一个或多个字母数字/下划线字符,可以将.*
替换为[a-zA-Z0-9_]+
。