PHP/正则表达式,用于检查字符串是否包含特定长度的单词
我需要检查收到的字符串是否包含长度超过20个字符的单词。例如,输入字符串: 你好,阿瑟,你好吗 将返回真值 有人能帮我用regexp检查一下吗。我正在使用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代码
/\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";
}