【发布时间】:2016-03-28 23:12:50
【问题描述】:
找到以下很好的正则表达式来匹配所有可打印的 ASCII 字符:
[ -~]
我的代码如下所示:
$string = "My ASCII string is (not) very funny.";
filter_var($string, FILTER_VALIDATE_REGEXP,
array("options"=>array("regexp"=>"/^[ -~]*$/")));
这几乎是我需要的,但我想排除冒号。我试过[ -~\:] 和[ -~^:] 都不起作用。什么是正确的正则表达式以及如何正确排除单个字符?
【问题讨论】:
-
您的字符串中没有
;或:。:是冒号,;是分号。您要允许哪个?[[:ascii:]]呢? (我之前也没有使用带有filter_var的正则表达式,我通常坚持使用preg_函数。) -
@chris:是的,我的意思是冒号对不起。
-
让我确定我明白你想要什么。如果您有任何冒号 (:) 或任何非 ascii 字符,您希望验证为 false,不是吗?
-
如果我有任何冒号或任何不可打印的 ASCII 字符或任何其他字符,想要验证为 false。 Nicael 已经答对了。