基本的正则表达式帮助

时间:2010-04-28 12:12:07

标签: php regex

我是编程PHP的新手,我正在尝试验证表单中的字段。

如果是RAL颜色代码,则该字段看起来像:RAL 1001。 所以字母RAL然后是4个数字。

有人可以帮助我将它们设置为正则表达式来验证它们。 我试过这个没有成功:

$string_exp = "/^[RAL][0-9 .-]+$/i";

我能说些什么,但很抱歉在PHP上是一个完整的NOOB。

干杯 本

4 个答案:

答案 0 :(得分:1)

通过删除冗余字符类,您将获得:

/^RAL \d{4}$/i

请注意,使用不区分大小写的标记会使其匹配,例如Ral 1245raL 9875等情况。

答案 1 :(得分:1)

[RAL]只会匹配一个字符,R,A或L,而您希望匹配字符串“RAL”。所以你可能想要这样的东西,

$string_exp = "/^RAL[0-9]{4}$/";

这将与"RAL1001"匹配,但不会与"RAL1""RAL 1001""RAL12345"等匹配。如果您想要RAL和数字之间的空格,那么也要放置该空格进入正则表达式。

答案 2 :(得分:0)

/^RAL [0-9]{4}$/

如果您按原样输入字母,则会按原样找到它们。如果您在[]中包含某些内容,则表示:“搜索其中一个字符的单个字符。”

因此,从文字“RAL”开始,当您应用i标志时,会发现文字“RAL”(或“ral”)。

答案 3 :(得分:0)

不一定!

...
if( preg_match('/RAL\s*(\d{4})(?!\d)/', $name, $m) ) {
   echo $m[1];
}
...

这接受'someRAL 1234within text' 但不接受'RAL 12345'。

确切的正则表达式完全取决于你的身份 背景或规范。你必须的 在你的问题中更明确。