grepl("((?=.*[[:lower:]])(?=.*[[:digit:]])[[:alpha:]]{8})", x, perl=TRUE)
包含情况的示例为:xxxxxxx8,1234567x,AB12EF78
排除情况的示例为:X!3D5F78,x23456789,AB123456
你已经非常接近了,你有了正确的关键概念(主要是向前看)。您可以使用以下内容:
grepl("((?=.*[[:lower:]])(?=.*[[:digit:]])[[:lower:][:digit:]]{8})", x, perl=TRUE)
就我个人而言,我觉得使用命名字符类的可读性并不高,所以我会这样写:
grepl("^(?=.*[a-z])(?=.*\\d)[a-z\\d]{8}$", x, perl=TRUE)
我还删除了外部的括号(不是必需的),并锚定了开头和结尾。
x <- c("xxxxxxx8", "1234567x", "ab12ef78", "x!3d5f78", "x23456789", "Ab123456")
grepl("^(?=.*[a-z])(?=.*\\d)[a-z\\d]{8}$", x, perl=TRUE)
# [1] TRUE TRUE TRUE FALSE FALSE FALSE
我想要一个正则表达式来检查以下内容: 至少包含10个字符 至少有一个大写字母 至少有一个小写字母 允许空格 null 我需要以下内容有效: JohnDoe1234567891011(仅数字) Johndoe!!!!!!!!!!!!!!!(仅限特殊字符)
我需要密码字段的正则表达式。 要求是: > 密码长度必须为8到20个字符 必须包含至少一个字母和一个数字以及来自
我需要一个正则表达式,它应该至少有一个数字字符,允许大小写字母,也允许特殊字符 但它对最大字符10无效。
我试图编写一个正则表达式来验证密码,它必须满足以下条件: 至少包含8个字符 我尝试了以下方法,但似乎不起作用。 http://jsfiddle.net/many_tentacles/Hzuc9/ 和 有什么想法吗?
问题内容: 我有一个正则表达式 这仅允许字母数字,但是如果我仅插入数字或字符,那么它也接受它。我希望它像字段应只接受字母数字值一样工作,但该值必须至少包含1个字符和1个数字。 问题答案: 为什么不先应用整个测试,然后再添加针对字符和数字的单独测试?无论如何,如果您想在一个正则表达式中完成所有操作,请使用正向提前:
我的输入字段的密码验证要求如下:“密码应至少包含一个大写字母、一个小写字母、一个数字或特殊字符”。 这是1个大写、1个小写、1个数字和一个特殊字符的正则表达式