首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在regex中下划线不验证

在regex中下划线不验证
EN

Stack Overflow用户
提问于 2022-10-05 09:04:36
回答 3查看 125关注 0票数 0

如何添加下划线作为正则字符串的一部分。

这是我的字符串,用于检查大写、小写、数字和特殊字符。其余的特殊角色都能工作。验证不适用于下划线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @"^[^\s](?=(.*[A-Za-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?=(.*[!@#$%^&*()-+=\[{\]};:<>|_.\\/?,\-`'""~]{1,})).*[^\s]$"

有什么想法吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2022-10-05 10:15:53

这是AWS Cogito使用的正则表达式,它应该适用于您的情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[\^$*.\[\]{}\(\)?\-“!@#%&\/,><’:;|_~`])\S{8,99}$"

您可以在http://regexstorm.net上检查regexes,它比每次构建应用程序都要快。

票数 3
EN

Stack Overflow用户

发布于 2022-10-05 09:54:09

我以这样的方式对待它:我接受了你的要求,并把它们分成了不同的正面观点:

检查:

  • 大写(?=.*[A-Z])
  • 小写(?=.*[a-z]) (请注意,我将A-Za-z分成了不同的组)
  • 数字(?=.*\d)
  • 特殊字符(?=.*[!@#$%^&*()-+=\[{\]};:<>|_.\\/?,\-`'""~])

然后,您可以按任何顺序组合它们,我按照上面列出的顺序组合它们,并使用^将其锚定在行的开头。不要在需求中的组之前、中间或之后添加任何可能导致regex强制执行组的特定顺序的额外匹配:

  • 对任何非单词字符\W的展望使得不可能匹配Underscore1_,因为它只匹配“除字母、数字或下划线之外的任何东西”--这是Underscore1_包含的所有内容。
  • 消耗一个字符的起始[^\s] (和结束[^\s])可能会破坏许多良好的匹配。Underscore1__1scoreUnder不重要,但是如果您从_开始并像使用[^\s]一样使用它,则后面对特殊字符的展望将失败(除非密码中有第二个特殊字符)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@"^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()-+=\[{\]};:<>|_.\\/?,\-`'""~])"

如果您的最小长度要求为7个字符,则只需将.{7,}$添加到正则表达式的末尾即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@"^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()-+=\[{\]};:<>|_.\\/?,\-`'""~]).{7,}$"

如果没有最小长度,来自每个组的一个字符的密码就足够了,而且由于有4个组,只有4个字符的密码将通过筛选器。

我认为没有必要在正则表达式中设置一个长度上限。如果用户界面接受了一个长度为数千个字符的字符串,那么为什么拒绝它太长呢?您存储的内容的长度可能会更小,因为您将存储bcrypt/scrypt/argon2/...编码密码。

建议:还在特殊字符列表中添加空格(甚至空格)。

票数 2
EN

Stack Overflow用户

发布于 2022-10-05 11:37:24

在regexp中,在第三捕获组regex101中添加下划线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@"^[^\s](?=(.*[A-Za-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W_]){1,})(?=(.*[!@#$%^&*()-+=\[{\]};:<>|_.\\/?,\-`'""~]{1,})).*[^\s]$"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73963923

复制
相关文章
Python中下划线---完全解读
Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始。 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说有特殊含义,对
新人小试
2018/04/12
1.6K0
浅谈 Scala 中下划线的用途
Scala 作为一门函数式编程语言,对习惯了指令式编程语言的同学来说,会不大习惯,这里除了思维方式之外,还有语法层面的,比如 underscore(下划线)就会出现在多种场合,令初学者相当疑惑,今天就来总结下 Scala 中下划线的用法。 1、存在性类型:Existential types def foo(l: List[Option[_]]) = ... 2、高阶类型参数:Higher kinded type parameters case class A[K[_],T](a: K[T]) 3、临时变
用户1177713
2018/02/24
6830
python命名中下划线的含义
Python不仅用奇特的空格表示代码块,还用变量和函数命名中的下划线来表示一些特殊含义,现在总结如下: 1、单下划线开头:弱“内部使用”标识,如:“from M import *”,将不导入所有以下划线开头的对象,包括包,模块、成员。 2、单下划线结尾:只是为了避免与python关键字的命名冲突。 3、双下划线开头:模块内的成员,表示私有成员,外部无法直接调用。 4、双下划线开头双下划线结尾_:指那些python类中的特殊函数或属性,如name,doc,init,import,file,setatt
用户1733462
2018/06/07
7750
Python 中下划线的 6 个作用
初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。
程序员皮克
2021/12/30
3860
Python 中下划线的 6 个作用
初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。
somenzz
2021/12/21
4360
Python 中下划线的 6 个作用
Python中下划线的5种含义
来源:Python程序员 ID:pythonbuluo 本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类。 单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。 如果你想知道“Python变量和方法名称中单下划线和双下划线的含义是什么?”,我会尽我所能在这里为你解答。 在本文中
小小科
2018/05/04
1.6K0
Python中下划线的5种含义
掌握 Python 中下划线的 5 个潜规则
本文将介绍Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类。
用户8949263
2022/04/08
5390
掌握 Python 中下划线的 5 个潜规则
过滤json中下划线字段名为驼峰式
作者:matrix 被围观: 33,039 次 发布时间:2018-03-31 分类:零零星星 | 3 条评论 »
HHTjim 部落格
2022/09/26
5430
在html中加下划线
方法三:用border:1px solid; padding:5px;
全栈程序员站长
2022/09/05
1.4K0
我终于把Python中下划线的含义弄清楚了(憋了很久了)
Python中有关单个和双下划线(“ dunder”)的各种含义和命名约定,名称修饰的工作方式以及它如何影响Python类。
Python知识大全
2020/02/13
11K0
我终于把Python中下划线的含义弄清楚了(憋了很久了)
在React应用程序中用RegEx测试密码强度
尽管一些组织认为应该由用户选择健壮的用户名和密码来保护自己,但是开发人员可以通过将规则包含在程序的设计中来帮助进行良好的密码选择。例如,开发人员可以通过加入进度条、百分比或颜色,来帮助用户在输入密码时规定密码的质量。
疯狂的技术宅
2020/02/18
2.7K0
python regex replace
正则匹配-直接内容替换 s = 'dsoheoifsdfscoopaldshfowefcoopasdfjkl;' ss = s.replace('coop','###') print(s,'\n',ss) dsoheoifsdfscoopaldshfowefcoopasdfjkl; dsoheoifsdfs###aldshfowef###asdfjkl; import re regex = re.compile(r'coop') # 正则匹配替换 regex.sub('$$$$$','sdlaf
py3study
2020/01/08
2.4K0
Google在Google Play中下架了17个恶意软件
网络安全公司Zscaler 表示,近日Google 已经在Google Play应用商店中删除了17个传播Joker恶意软件的应用程序。
FB客服
2020/10/27
7130
Google在Google Play中下架了17个恶意软件
[Dream Big, Think Big, Achieve Big!] Regex Matching Problems 2
包子IT面试培训 助你拿到理想的offer! 有问题,问包子!Got question? Ask Baozi! 接着上一轮关于regex的博客讨论,下面我们讨论一下另一道比较常见的regular e
包子面试培训
2018/04/20
8700
boost::string or boost::regex
当中用蓝色标记出的部分(layout, local_size_x, local_size_y, local_size_z, in)为keyword,斜体字部分(a, b, c)为数据类型为unsigned int的数字,请编写一个函数,用于从文件里抽取出a, b, c的值。当中文件名称为输入參数,该函数的返回值是抽取得到的a,b,c三个值。
全栈程序员站长
2022/07/08
2.1K0
在Linux系统中下载关系型数据库Mysql。
1、点击[命令行窗口] 2、按<Enter>键 3、点击[mysql-connector-java-5.1.40.tar.gz] 4、点击[转机完成后关闭对话框] 5、点击[关闭] 6、点击[命令行窗口] 7、按<Enter>键 8、按<Enter>键
裴来凡
2022/05/28
3.1K0
在Linux系统中下载关系型数据库Mysql。
python在互联互通中下载应用一例
    在实际工作碰到一个需求,每天需要在大量的服务器上下载更新文件,并且文件都是几个G的大文件,由于服务器数量比较多,且分布在大江南北的联通电信,如果电信的服务器去下载联通源的文件,会很慢,反之亦然,最好能有一个脚本,自动判断到电信的服务器下载服务器快,还是到联通的下载服务器快。
力哥聊运维与云计算
2019/06/28
3310
C: GNU regex library (regex.h)正则表达式调用示例
GNU regex是GNU提供的跨平台的POSIX 正则表达式库(C语言)。 我也是最近才接触这个相对于C++/Java实现来说非常简陋,勉强够用的正则表达式库。 不算GNU提供的扩展函数,POSIX标准的regex库总共就4个函数regcomp,regerror,regexec,regfree, 以下以完整源码的方式调用以上函数完成对GNU regex library的基本测试。
10km
2021/11/15
1.1K0
下划线在 Python 中的特殊含义
使用一个下划线保存 Python 交互式命令提示符中最后执行的表达式的值。我们还可以将值保存到另一个变量。
AI算法与图像处理
2021/01/20
1K0
下划线在 Python 中的特殊含义
点击加载更多

相似问题

VBA Regex模式:在我的模式中下划线时失败

22

regex不验证

30

RegEx使用jQuery验证器验证连续下划线

13

camelCase在vi(m)中下划线

59

在键值对中下划线求和

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文