【发布时间】:2012-12-08 04:48:40
【问题描述】:
我使用 HTML 编码 Sublime 文本中的特殊字符将所有特殊字符转换为它们的 HTML 代码。我在文件的不同部分有很多重音字符。所以,如果我可以选择所有特殊字符,然后使用插件一次转换,那就太好了!
是否有一个正则表达式可以帮助只选择所有特殊字符?
【问题讨论】:
标签: encoding sublimetext2 html-encode htmlspecialchars
我使用 HTML 编码 Sublime 文本中的特殊字符将所有特殊字符转换为它们的 HTML 代码。我在文件的不同部分有很多重音字符。所以,如果我可以选择所有特殊字符,然后使用插件一次转换,那就太好了!
是否有一个正则表达式可以帮助只选择所有特殊字符?
【问题讨论】:
标签: encoding sublimetext2 html-encode htmlspecialchars
是的。
Sublime 文本支持正则表达式,您可以选择所有非 ASCII(代码点 > 128)字符。这个正则表达式对你来说应该足够了:
[^\x00-\x7F]
只需搜索和替换。
但是,如果您一开始就进行手动 HTML 编码,那么您就做错了。将您的文件保存为 UTF-8 编码(默认为 Sublime Text 2),并确保您的 Web 服务器也以 UTF-8 格式发送这些文件。无需转换、编码或任何操作。
【讨论】:
名为 Highlighter 的 Sublime Text 2/3 包可以(正如他的名字所说)使用正则表达式突出显示某些字符...
“您还可以为要突出显示的字符添加自定义正则表达式。”
所以,有了这个包,加上@Mikko Ohtamaa的回答,我们就可以编辑文件了……
highlighter.sublime-settings - User
...并包含建议的正则表达式(此处表示为 [^\\x00-\\x7F])以得到如下结果:
{
"highlighter_regex": "(\t+ +)|( +\t+)|[^\\x00-\\x7F]|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014]|[\t ]+$"
}
结果将是我们文件中任何“非ASCII(代码点> 128)字符”的自动突出显示。
请注意,这不会选择这些字符,只会突出显示它们以便您轻松实现。
【讨论】:
我最近写了一个插件,专门用于突出显示非 ascii 字符: https://github.com/TuureKaunisto/highlight-dodgy-chars
使用 Highlighter 可以实现完全相同的功能,但使用不太通用的 Highlight Dodgy Chars 插件,您无需编写正则表达式,只需在设置。欧洲特殊字符默认列入白名单。
【讨论】: