Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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
python正则表达式-标识具有N个以上非字母数字的字符串_Python_Regex - Fatal编程技术网

python正则表达式-标识具有N个以上非字母数字的字符串

python正则表达式-标识具有N个以上非字母数字的字符串,python,regex,Python,Regex,我想识别包含3个以上非字母数字(除了\.\-\s)的字符串,这将计算标点和特殊字符。 我试过使用下面的正则表达式,但它用“序列中的非字母数字”标识字符串 ([^a-zA-Z0-9.-\s]){2,} 例如:abc定义已识别,ab c\U d未识别 我想识别任何包含3个以上非字母数字的字符串(除了\.\-\s)如果您想识别至少有三个(如示例所示)非字母数字出现的字符串,不一定按顺序出现,您可以使用: ([^a-zA-Z0-9.\-\s].*){3} 您可以简单地使用{3},因为末尾的*将处理字符

我想识别包含3个以上非字母数字(除了\.\-\s)的字符串,这将计算标点和特殊字符。
我试过使用下面的正则表达式,但它用“序列中的非字母数字”标识字符串

([^a-zA-Z0-9.-\s]){2,}

例如:abc定义已识别,ab c\U d未识别


我想识别任何包含3个以上非字母数字的字符串(除了\.\-\s)

如果您想识别至少有三个(如示例所示)非字母数字出现的字符串,不一定按顺序出现,您可以使用:

([^a-zA-Z0-9.\-\s].*){3}

您可以简单地使用
{3}
,因为末尾的
*
将处理字符串的其余部分。

您可以使用以下方法检查包含3个以上非字母数字的字符串

import re
reg = r'.*([^a-zA-Z0-9\.\-\s]{4}).*'

print(re.search(reg,"!$#@abcdef"))
print(re.search(reg,"123abc"))
print(re.search(reg,"#$abc"))
print(re.search(reg,"abc____def"))
print(re.search(reg,"abc---def"))

“\W”
([^a-zA-Z0-9])
也可用于非字母数字,但不包括“\u1”