1

根据HTML::Entities文档,第二个参数是encode_entities

不安全字符是使用正则表达式字符类语法(您在正则表达式的括号中找到的)指定的。

要编码的默认字符集是控制字符、高位字符以及 <、&、>、' 和 " 字符。

但是,该页面没有提供默认集的等效参数的示例。我想对不安全的字符集进行细微调整,而不会倒退。

什么正则表达式字符类相当于«控制字符、高位字符以及我可以用作起点的 <、&、>、' 和 "»?

4

2 回答 2

3

根据模块源代码,它看起来像:

/([^\n\r\t !\#\$%\(-;=?-~])/

从这一点开始encode_entities

# Encode control chars, high bit chars and '<', '&', '>', ''' and '"'
$$ref =~ s/([^\n\r\t !\#\$%\(-;=?-~])/$char2entity{$1} || num_entity($1)/ge;

非否定类:

/([\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff<&>'"])/
于 2014-02-14T22:59:22.687 回答
1

看起来这是一个默认的替换正则表达式:

s/([^\n\r\t !\#\$%\(-;=?-~])/$char2entity{$1} || num_entity($1)/ge

https://metacpan.org/pod/HTML::Entities

于 2014-02-14T23:05:46.250 回答