javascript - RegEx 可能的优化和速记技巧
问题描述
我试图创建一个正则表达式,它匹配 1 到 20 个字符且不超过一个空格的用户名(尽管是可选的)。并通过反复试验获得了这个厚实的正则表达式:
[0-9A-Za-z]{3,20} ?[0-9A-Za-z]{1,20}
如何优化此 RegEx 使其更短且通常更好?
解决方案
使用负前瞻表示输入字符串不能有两个空格:
^(?!\S* \S* )[0-9A-Za-z ]{1,20}$
注意:您的正则表达式在前 3 个位置不允许有空格,但这个允许。我只是通过你的口头描述,而不是你的正则表达式。(您的正则表达式还允许名称中包含超过 20 个字符,多达 41 个,这就是我忽略它的原因)。
推荐阅读
- google-apps-script - 为 Google 表格中的每个数据透视表行添加一个复选框
- crashlytics - Firebase Crashlytics:我们将监听您的应用与我们的服务器进行通信
- php - PHP 作为客户端连接到 NodeJS Web 套接字
- gmail - 使用组织 GSuite 电子邮件批量发送电子邮件
- mysql - AWS RDS Aurora 查询编辑器:用户 'admin'@'#.#.#.#' 的访问被拒绝(使用密码:YES)
- c# - 如何在 Xamarin 的 ViewModel 渲染器中获取 TableSection 的 TextColor 值
- python - 如何将“段落”变成列表
- ffmpeg - 如何使用 ffmpeg 复制其他帧缓冲区
- python - 两组数据点之间的聚类 - Python
- python-3.x - 从 PyQt5 迁移到 Pyside2 后,只要调用 QFileDialog,QThread 就会关闭