在PHP中,可以利用正则表达式和“preg_match()”函数来匹配数字和字母,该函数用于执行一个正则表达式的匹配,语法为“preg_match("/^[a-zA-Z0-9]+$/u", 需要匹配的字符串)”。

本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。

php怎么只匹配数字和字母

preg_match 函数用于执行一个正则表达式匹配。

语法

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

搜索 subject 与 pattern 给定的正则表达式的一个匹配。

参数说明:

  • $pattern: 要搜索的模式,字符串形式。

  • $subject: 输入字符串。

  • $matches: 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

  • $flags:flags 可以被设置为以下标记值:PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。

  • offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。

返回值

返回 pattern 的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。

正则表达式:/^[a-zA-Z0-9]+$/u

释义:

(1)“/”:正则表达式的定义,固定的书写形式;

(2)“^”:表示开始;

(3)“[]”:表示一个字符组,匹配包含的任何字符。例如,“[ab]”匹配“plain”中的“a”;

(4)“a-z”:与小写字母a-z匹配的字母范围;

(5)“A-Z”:表示与大写字母A-Z匹配的字母范围;

(6)“0-9”:匹配范围为0-9的数字;

(7)“+”:表示匹配数为一个或多个;

(8)“$”:匹配输入行的结尾。如果设置了RegExp对象的Multiline属性,则$也匹配“\n”或“\r”之前的位置;

(9)“u”:最后一个u是模式修饰符,严格来说,它可以是预定义的常数。表示使用unicode进行匹配。

扩展资料:

其它正则表达式符号的含义:

(1)“*”:与上一个子表达式匹配任意次。例如,zo*匹配“z”以及“zo”和“zoo”。*等效于{0,};

(2)“?”:匹配上一个子表达式零或一次。例如,“做(es)?”匹配“do”或“does”。?等效于{0,1};

(3)“{n}”:n是一个非负整数。匹配被确定n次。例如,“o{2}”不能与“Bob”中的“o”匹配,但是可以与“food”中的两个o匹配;

(4)“{n,}”:n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但是可以匹配“foooood”中的所有o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”;

(5)“ {n,m}”:m和n是非负整数,其中n <= m。 至少匹配n次,最多匹配m次。 例如,“ o {1,3}”将匹配“ fooooood”中的前三个o作为一个组,最后三个o作为一个组。 “ o {0,1}”等效于“ o?”。 请注意,逗号和两个数字之间不能有空格。


php怎么只匹配数字和字母