【发布时间】:2010-04-07 04:46:22
【问题描述】:
我有这个字符串:我认为是德语的 Verbesserungsvorschläge。现在我想将它与 php 中的正则表达式匹配。更笼统地说,我想匹配像德语这样的字符,它们在 ASCII 集中不是 100%。
谢谢。
【问题讨论】:
我有这个字符串:我认为是德语的 Verbesserungsvorschläge。现在我想将它与 php 中的正则表达式匹配。更笼统地说,我想匹配像德语这样的字符,它们在 ASCII 集中不是 100%。
谢谢。
【问题讨论】:
如果您使用 8 位字符集,则正则表达式 [\x80-\xFF] 匹配任何非 ASCII 字符。在 PHP 中是:
if (preg_match('/[\x80-\xFF]/', $subject)) {
# String has non-ASCII characters
} else {
# String is pure ASCII or empty
}
【讨论】:
preg_match_all('~[^\x00-\x7F]~u', 'Verbesserungsvorschläge', $matches);
【讨论】:
这是一个痛苦的世界,但您可以尝试使用十六进制值,如“/Verbesserungsvorschl\xc3ge/”中的简单扩展字符。
可以在表格中找到十六进制值,以便使用
即时确定echo dechex( ord( ä ) );
对于完整的 unicode,您可以使用 /u 作为修饰符。请参阅http://www.php.net/manual/en/regexp.reference.unicode.php 和其他页面。我的理解是 unicode 在 PHP 版本 6 中会更好地工作。
【讨论】: