PHP 检查字符串是否在带有 preg_match 的序列中最多包含 30 个字母/数字

标签 php string preg-match match sequence

我被困在这里,找不到我的问题的任何结果,可能是因为英语不是我的母语。

我想匹配序列中最多包含 30 个字母/数字的行:

这甚至可以用 preg_match 实现吗?

preg_match("/[^A-Za-z0-9](max 30 in a sequence)/", $string)

字符串:

$string = "1234567890123456789012345678901234567890"; // FALSE
$string = "sdfihsgbfsadiousdghiug"; // TRUE
$string = "cfgvsdfsdf786sdf78s9d8g7stdg87stdg78tsd7g0tsd9g7t"; // FALSE
$string = "65656.sdfsdf.sdfsdf"; // TRUE
$string = "ewrwet_t876534875634875687te8---7r9w358wt3587tw3587"; // TRUE
$string = "sd879dtg87dftg87dftg87ftg87tfg087tfgtdf8g7tdf87gt8t___454"; // FALSE

最佳答案

您可能想查找这些字符中是否有 30 个或更多:

preg_match("/[A-Za-z0-9]{30,}/", $string)

查看以粗体显示的匹配项:

1234567890123456789012345678901234567890
sdfihsgbfsadiousdghiug
cfgvsdfsdf786sdf78s9d8g7stdg87stdg78tsd7g0tsd9g7t
65656.sdfsdf.sdfsdf
ewrwet_t876534875634875687te8---7r9w358wt3587tw3587
sd879dtg87dftg87dftg87ftg87tfg087tfgtdf8g7tdf87gt8t___454

http://regexr.com/3arj2

然后取反结果:

preg_match("/[A-Za-z0-9]{30,}/", $string) === 0
// returns 0 if no match
// or FALSE if error

关于PHP 检查字符串是否在带有 preg_match 的序列中最多包含 30 个字母/数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735329/

相关文章:

php - 使用正则表达式提取两个单词之间的单词

PhP mysql插入语法错误

php - GCM 使用 curl 发送 (php)

php - 如何使用 PHP 将日期转换为 UTC 午夜

c - 使用strcpy时出现段错误?

java - 通过TCP/IP接收数据时HL7V2 HAPI解析器异常

php - preg_match 少于 5 个字符的单词

php - 像 SQL 中那样通过 preg_match 分解字符串

php - 获取 1-200 之间的随机数,但忽略从查询中读取的数字

arrays - Golang 将简单代码数组转换为字符串