gpt4 book ai didi

php - RegExr 至少有 2 个字母和可选字母,但没有其他字母?

转载 作者:可可西里 更新时间:2023-11-01 13:49:00 25 4
gpt4 key购买 nike

我想要一个文本的正则表达式,如果里面至少有 1 个单词和 2 个字母,并且至少有 25 个字母或数字,并且还允许 (0-9äöü,.' -),如果那里有其他字母或数字,应该报错。


例子:

正确:

  • 李四
  • 马克斯·穆斯特曼
  • John-Frank' Doe。

错误:

  • 约翰/多伊

正则表达式:

  • 正则表达式:([a-z]{2})\w+
  • 允许的项目:[äöü0-9,.' -]
  • 最大长度:{25,999}
if(preg_match("/([A-Za-z]{2})\w+/",$text)){
if(!preg_match("/[a-zäöüA-ZÄÖÜ,.' -]/g",$text)){echo 'error';}
else{echo'error';}

我不确定如何在代码中获得解决方案。

最佳答案

您可能要做的是使用正向先行断言 25 - 999 的长度,并断言有 2 个连续的 [a-z]

然后匹配你的字符类 [a-zA-Z0-9äöü,.' -]+ 允许的项目添加 a-z 和 A-Z。

^(?=.{25,999})(?=.*[a-z]{2})[a-zA-Z0-9äöü,.' -]+$
  • ^ 字符串开始
  • (?=.{25,999}) 正面前瞻,断言 25 - 99 个字符
  • (?=.*[a-z]{2}) 正面前瞻,断言 2 次 [a-z]
  • [a-zA-Z0-9äöü,.' -]+ 匹配任何列出的 1+ 次
  • $ 字符串结束

Regex demo | Php demo

例如(我将字符串加长以考虑最小长度 25)

$strings = [
"This is a text with John Doe",
"This is a text with Max Müstermann ",
"This is a text withJohn-Frank' Doe.",
"This is a text with John/Doejlkjkjlk",
];
$pattern = "/^(?=.{25,999})(?=.*[a-z]{2})[a-zA-Z0-9äöü,.' -]+$/";
foreach ($strings as $string) {
if (preg_match($pattern, $string)) {
echo "Ok ==> $string" . PHP_EOL;
} else {
echo "error" . PHP_EOL;
}
}

结果

Ok ==> This is a text with John Doe
Ok ==> This is a text with Max Müstermann
Ok ==> This is a text withJohn-Frank' Doe.
error

关于php - RegExr 至少有 2 个字母和可选字母,但没有其他字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com