正则表达式:必须以字母或数字开头,但其余部分可以是任何内容

时间:2012-02-15 14:54:01

标签: php regex perl

我正在尝试构建一个模式以便在验证中使用。

我的目标是让第一个字符成为字母或数字,其余的是任意的。

i.ex:

  1. A'r4nd0m!
  2. 9!h3ll0。
  3. b1llin6s
  4. 我想到了:[a-zA-Z0-9_/][.*]++

    解决方案是什么?

    谢谢!

4 个答案:

答案 0 :(得分:6)

正如我所说,一封信或一个数字是[\pL\pN]。因此,以其中一个开头的字符串将匹配模式

/^[\pL\pN]/

答案 1 :(得分:4)

如果第一个数字是数字或字母,则为^[A-Za-z0-9]。 (^匹配字符串的开头。)剩下的就是一个简单的.*就足够了,所以你有^[A-Za-z0-9].*

答案 2 :(得分:2)

你可以稍微减少你的正则表达式:

^[a-zA-Z0-9].*

以字母/数字开头,可以是任意长度或之后的任何字符。

答案 3 :(得分:2)

您必须使用/^/将正则表达式锚定在字符串的开头。你的角色类[a-zA-Z0-9_/]也匹配下划线和斜线:这是你想要的吗?此外,[.*]++匹配一个或多个点或星号,尾随+多余地复制量词。

由于字符串的其余部分可以是“任何”,因此没有必要匹配它,

/^[A-Za-z0-9]/

会好起来的。