Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 正则表达式捕获字母和数字序列,但至少包含3个字母?如何做?_Php_Regex - Fatal编程技术网

Php 正则表达式捕获字母和数字序列,但至少包含3个字母?如何做?

Php 正则表达式捕获字母和数字序列,但至少包含3个字母?如何做?,php,regex,Php,Regex,我必须用PHP做一个正则表达式,它在文本中捕获只包含大写字母、数字或下划线的字符串。 例如:这个东西,这个东西,一个以上的东西等。 它在以下情况下运行良好:/[A-Z0-9\]/ 但是,我只想捕捉以下序列: -最少5个字符==>/[A-Z0-9]{5,}/ -并且至少包含3个大写字母==> 你有什么想法吗 谢谢 并且至少包含3个大写字母==> 为此,请在开始时使用 ^(?=(?:[^A-Z\n]*[A-Z]){3})[A-Z0-9_]{5,}$ 或 谢谢!我要试试。请再检查一下正则表达式。我再

我必须用PHP做一个正则表达式,它在文本中捕获只包含大写字母、数字或下划线的字符串。 例如:
这个东西
这个东西
一个以上的东西
等。
它在以下情况下运行良好:
/[A-Z0-9\]/

但是,我只想捕捉以下序列:
-最少5个字符==>
/[A-Z0-9]{5,}/

-并且至少包含3个大写字母==>

你有什么想法吗

谢谢

并且至少包含3个大写字母==>

为此,请在开始时使用

^(?=(?:[^A-Z\n]*[A-Z]){3})[A-Z0-9_]{5,}$


谢谢!我要试试。请再检查一下正则表达式。我再检查一下,但这不是我需要的。如果你看这里(),你会发现你的正则表达式捕获了不应该被捕获的字符串。。。无论如何谢谢你@DamFa在求反类中添加换行符,因为您希望匹配没有换行符的字符串,所以在求反类中不需要
\n
。这就是为什么我不想把它放在否定的char类中。而且
TES_123
也是一个匹配项,因为它至少包含3个大写字母和
数字。总长度大于5。满意。嗯。。。什么样的“换行符”可以改变这个问题?我不想捕捉像“123456”这样的字符串,正则表达式无论如何都会捕捉到它?不
\b(?=(?:[^A-Z]*[A-Z]){3})[A-Z0-9_]{5,}+\b