Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SublimiteText2插件设置:DocBlockr插件中正则表达式的转义美元符号';s设置_Python_Regex_Escaping_Sublimetext_Sublimetext2 - Fatal编程技术网

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
}]