我想识别其中包含超过3个非字母数字(除了\。\ - \ s)的字符串,它会计算标点符号和字符串。特殊字符 我已尝试使用以下正则表达式,但它使用" 非字母数字按顺序识别字符串"
([^ A-ZA-Z0-9 .- \ S]){2}
例如:识别出abc__def,未识别出ab_c_d
我想识别任何超过3个非字母数字的字符串(除了\。\ - \ s)
答案 0 :(得分:2)
如果您希望识别字符串至少三个(如您的示例所示)非字母数字出现,不一定按顺序发生,您可以使用:
([^a-zA-Z0-9.\-\s].*){3}
您可以简单地使用{3}
,因为最后.*
会处理字符串的其余部分。
答案 1 :(得分:0)
您可以使用以下方法检查超过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_])
也可用于非字母数字,但不包括“_”。