regex - 如何在颤振中使用正则表达式?
问题描述
RegExp(r'^(?=.*[0-9])(?=\\S+$).{8,40}$').hasMatch(text).
此代码适用于 java,但不适用于 dart。我不知道为什么?
解决方案
我的猜测是双反斜杠可能是不必要的,并且:
^(?=.*[0-9])(?=\S+$).{8,40}$
可能只是工作。
也许,您可能想要稍微加强/保护通过标准,也许使用类似于以下内容的表达式:
(?=.*[0-9])(?=.*[A-Za-z])(?=.*[~!?@#$%^&*_-])[A-Za-z0-9~!?@#$%^&*_-]{8,40}$
这使得,
- 至少一位数,
- 至少一个大写/小写,和
- 这些字符中的至少一个:
~!?@#$%^&*_-
如果您想简化/修改/探索表达式,它已在regex101.com的右上角面板中进行了说明。如果您愿意,您还可以在此链接中观看它如何与一些示例输入匹配。
参考
推荐阅读
- gcc - 使用 arm-gcc 启用 VPF 库(硬)
- linux - Buildroot 无法使用 glibc
- c - 如何访问其他模块中的全局变量?
- android - 我的 android 应用程序在颤振中没有从 release.apk 中的 api 获取数据,但在调试模式下工作
- python - 如何更改检测到对象边界框中的矩形颜色和字体颜色
- android - 使用 ImageButton 的弹出菜单
- r - 在使用 R 的 Summarize 函数中使用 mutate
- excel - 将带有扩展名的excel列表中的文件复制到其他文件夹
- c# - 将字典参数类型转换为对象
- javascript - 在 jquery 中编辑动态创建的 li 元素