【发布时间】:2010-01-04 05:11:33
【问题描述】:
我正在寻找一个相当具体的正则表达式,我几乎拥有它,但并不完全。
我想要一个至少需要 5 个字符的正则表达式,其中至少一个字符是要么 数字值 或 非字母数字字符。
这是我目前所拥有的:
^(?=.*[\d]|[!@#$%\^*()_\-+=\[{\]};:|\./])(?=.*[a-z]).{5,20}$
所以问题出在“或”部分。它将允许非字母数字值,但仍需要至少一个数字值。你可以看到我有 or 运算符“|”在我需要的数字和非字母数字之间,但这似乎不起作用。
任何建议都会很棒。
【问题讨论】:
-
对于非字母数字字符,您可以使用 \W (非单词字符,即没有 [a-zA-Z0-9_] )而不是 [!@#$%\^*() _\-+=[{]};:|\./]
标签: regex