Regex 正则表达式以匹配类型为“=”的仅HTML脚本标记;text/javascript“;
我正在使用一个主干应用程序的模板,这些模板存储在Regex 正则表达式以匹配类型为“=”的仅HTML脚本标记;text/javascript“;,regex,textmate,sublimetext2,Regex,Textmate,Sublimetext2,我正在使用一个主干应用程序的模板,这些模板存储在元素中的HTML中,但这变得令人沮丧,因为升华文本将模板中的HTML着色为Javascript。我想让编辑器考虑这些脚本标签和普通HTML标签一样。 我曾尝试在html.tmLanguage上修改source.js.embedded.html块中的正则表达式,但作为一个对正则表达式缺乏经验的人,我无法正确使用它 有什么想法吗 我认为,这是tmLanguage文件中需要修改的相关部分: <key>begin
元素中的HTML中,但这变得令人沮丧,因为升华文本将模板中的HTML着色为Javascript。我想让编辑器考虑这些脚本标签和普通HTML标签一样。
我曾尝试在html.tmLanguage上修改source.js.embedded.html块中的正则表达式,但作为一个对正则表达式缺乏经验的人,我无法正确使用它
有什么想法吗
我认为,这是tmLanguage文件中需要修改的相关部分:
<key>begin</key>
<string>(?<!</(?:script|SCRIPT))(>)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.html</string>
</dict>
</dict>
<key>end</key>
<string>(</)((?i:script))</string>
开始
(?!/(?:脚本|脚本))()
捕获
1.
名称
标点符号.definition.tag.html
2.
名称
entity.name.tag.script.html
结束
(/)((?i:脚本))
我认为您应该编辑其他值:
<key>begin</key>
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.html</string>
</dict>
</dict>
开始
(?:^\s+)((?:脚本))\b(?![^]*/)
开始接受
1.
名称
标点符号.definition.tag.html
2.
名称
entity.name.tag.script.html
并替换(?:^\s+)((?i:script))\b(?![^]*/)
使用
(?:^\s+)((?i:script))\b(?![^]*/)(?![^]*type=“text/template”)
我认为您应该编辑其他值:
<key>begin</key>
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.tag.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.html</string>
</dict>
</dict>
开始
(?:^\s+)((?:脚本))\b(?![^]*/)
开始接受
1.
名称
标点符号.definition.tag.html
2.
名称
entity.name.tag.script.html
并替换(?:^\s+)((?i:script))\b(?![^]*/)
使用
(?:^\s+)((?:脚本))\b(?![^]*/)(?![^]*type=“text/template”)
谢谢!这是因为整个原始正则表达式是一个零宽度的前瞻,所以它后面可以跟着另一个仍然会搜索整个字符串的前瞻?你几乎是对的。但是整个正则表达式不是零宽度断言,只有这一部分-(?![^]*/)
,下一个前瞻断言将从与它相同的位置进行搜索。谢谢!这是因为整个原始正则表达式是一个零宽度的前瞻,所以它后面可以跟着另一个仍然会搜索整个字符串的前瞻?你几乎是对的。但是整个正则表达式不是零宽度断言,只有这一部分-(?![^]*/)
,下一个前瞻断言将从与它相同的位置进行搜索。