-1

我正在分析一些正则表达式概念基础知识,我们都知道表达式开头使用的'^'符号以某个值开头,而表达式末尾使用的'$'以某个值结尾,如果它们一起使用'^exp$'它只能由 exp 匹配。但是在 Yii 中声明规则时

为了只允许我们给出的数字

public function rules()
{                        array('value', 'match', 'pattern' => '/^[0-9-]+$/u','message' => "Incorrect symbols (A-z) ."), }

我只想知道为什么我们在规则中使用尾随的“/u”和“/”。谢谢朋友。

4

1 回答 1

3

领先/和落后/u与 Yii 没有任何关系。

它们来自用于在 PHP 中创建正则表达式的语法。

在 PHP 中通过将正则表达式包含在两组分隔符中来创建正则表达式,通常使用的分隔符是一对/符号,但您可以使用任何一对非字母数字、非反斜杠、非空白字符作为分隔符。

/^[0-9]+$/u
^--------^
These two are the delimiters used to create the regular expression

现在对于u, 结束分隔符之后的任何内容都称为正则表达式修饰符,它用于配置正则表达式引擎的各种选项。

/^[0-9]+$/u
         ^---------
         Anything from here on is a regular expression modifier

u让正则表达式引擎将模式视为 Unicode 字符串,当您的模式包含用于匹配 Unicode 文本的 Unicode 字符时,它很有用。

查看正则表达式的PHP 参考文档以了解 PHP 中正则表达式的基础知识。

于 2013-09-28T08:16:24.137 回答