Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/正则表达式,用于检查字符串是否包含特定长度的单词_Php_Regex_String - Fatal编程技术网

PHP/正则表达式,用于检查字符串是否包含特定长度的单词

PHP/正则表达式,用于检查字符串是否包含特定长度的单词,php,regex,string,Php,Regex,String,我需要检查收到的字符串是否包含长度超过20个字符的单词。例如,输入字符串: 你好,阿瑟,你好吗 将返回真值 有人能帮我用regexp检查一下吗。我正在使用php 提前谢谢 /\w{20}/ …15个字符的填充器…您可以测试字符串是否包含以下模式的匹配项: [A-Za-z]{20} 构造[A-Za-z]创建一个与ASCII大写和小写字母匹配的字符类。{20}是一种有限重复语法。检查是否有包含20个字母的匹配就足够了,因为如果有包含更多字母的单词,它至少包含20个 工具书类 及 PHP代码

我需要检查收到的字符串是否包含长度超过20个字符的单词。例如,输入字符串:

你好,阿瑟,你好吗

将返回真值

有人能帮我用regexp检查一下吗。我正在使用php

提前谢谢

/\w{20}/

…15个字符的填充器…

您可以测试字符串是否包含以下模式的匹配项:

[A-Za-z]{20}
构造
[A-Za-z]
创建一个与ASCII大写和小写字母匹配的字符类。
{20}
是一种有限重复语法。检查是否有包含20个字母的匹配就足够了,因为如果有包含更多字母的单词,它至少包含20个

工具书类

PHP代码段 下面是一个示例用法:

$strings = array(
  "hey what the (@#$&*!@^#*&^@!#*^@#*@#*&^@!*#!",
  "now this one is just waaaaaaaaaaaaaaaaaaay too long",
  "12345678901234567890123 that's not a word, is it???",
  "LOLOLOLOLOLOLOLOLOLOLOL that's just unacceptable!",
  "one-two-three-four-five-six-seven-eight-nine-ten",
  "goaaaa...............aaaaaaaaaalll!!!!!!!!!!!!!!",
  "there is absolutely nothing here"
);

foreach ($strings as $str) {
  echo $str."\n".preg_match('/[a-zA-Z]{20}/', $str)."\n";
}
这张照片是()的:

如模式中所述,当存在至少20个字符长的“单词”(由字母序列定义)时,
preg_match
为真

如果“单词”的定义不充分,则只需将模式更改为,例如
\S{20}
。即,20个非空白字符的任何序列;现在,除了最后一个字符串外,所有字符串都是匹配项()。

我认为该函数正是您需要的。您可以这样做:

if (strlen($input) > 20) {
    echo "input is more than 20 characters";
}

这将读取整个字符串并返回长度,而不是字符串中的单个单词。
“10000000000000000000000000000海里联盟”
是否匹配?“单词”对你来说意味着什么?不,这不会通过过滤器。对我来说,一个词是一个英语单词,没有数字。我正在检查的文本是约会网站的个人资料文本。
if (strlen($input) > 20) {
    echo "input is more than 20 characters";
}