【发布时间】:2012-06-21 02:07:10
【问题描述】:
Unicode Common Locale Data Repository (CLDR) 包含大量有关语言和字符之间关系的信息。例如,您可以通过查看misc.exemplarCharacters 图表来确定特定语言中使用了哪些字符。这些图表的原始数据存储为 XML 文件,示例字符存储为符合 Unicode 正则表达式标准 UTS18 的正则表达式。
以下是一些 UTS18 正则表达式的示例:
1. [a à b c ç d e é è f g h i í ï j k l ŀ m n o ó ò p q r s t u ú ü v w x y z]
2. [অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ং \u0981 ঃ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড {ড\u09BC}ড় ঢ {ঢ\u09BC}ঢ় ণ ত থ দ ধ ন প ফ ব ভ ম য {য\u09BC} ৰ ল ৱ শ ষ স হ া ি ী \u09C1 \u09C2 \u09C3 ে ৈ ো ৌ \u09CD]
3. [a á b ɓ c d ɗ e é ɛ {ɛ\u0301} f g i í j k l m n {ny} ŋ o ó ɔ {ɔ\u0301} p r s t u ú ū w y]
我正在使用 PHP 和 SimpleXML 来解析 XML 数据并隔离这些正则表达式字符串。现在,我想将单个多字节字符与这些正则表达式匹配。我目前正在使用mb_ereg_match 函数,它会产生以下一个或多个警告(取决于正则表达式):
mbregex compile err: premature end of char-class in ...
mbregex compile err: empty range in char class in ...
mbregex compile err: empty char-class in ...
关于为什么这不起作用的任何想法?
【问题讨论】:
-
您是否设置了 mb_internal_encoding 和 mb_regex_encoding?请在你使用 mb_ereg_match 的地方显示你的代码