0

我正在尝试在 php 中学习正则表达式,并且一直试图为特定模式编写正则表达式。

我试图实现的模式如下,

必须以字母开头。

可以包含字母、数字或下划线。

整个字符串中必须至少有 3 个字母。

我尝试过的;

'#^[a-z0-9_]+$#i' // this one just matches the characters I want

这就是我被困住的地方我试过这个,

'#^[a-z]{1}[a-z0-9_]+$#i' // doesn't work

我正在尝试从这个网站学习,但我发现很难绕开它,

http://www.regular-expressions.info/reference.html

谢谢

4

2 回答 2

2
'#^[a-zA-Z]([0-9_]*[a-zA-Z]){2}[a-zA-Z0-9_]*$#'

[a-zA-Z]检查第一个约束(以字母开头)

([0-9_]*[a-zA-Z]){2}检查第二个约束(必须总共有 3 个字母)

[a-zA-Z0-9_]*释放以前的约束,并且仅限于使用允许的字符

于 2013-03-09T13:51:12.317 回答
1

这应该这样做:

#^[a-zA-Z]{1}(\w*[a-zA-Z]\w*){2}$#i

解释:

^[a-zA-Z]{1}  // 1st character is a letter
(\w*[a-zA-Z]\w*){2}$ // The rest of the body contains exactly 2 letters, and 0 or more of any other word characters (letter, number, underscore)

下面是一个 refiddle 示例:http ://refiddle.com/gld

于 2013-03-09T14:19:13.150 回答