在正则表达式中添加可选的特殊字符

时间:2019-02-15 06:10:20

标签: regex

我想在正则表达式的可选输入中添加特殊字符。目前,我正在使用此字母数字模式。

 (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,20})$

我正在使用

 (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9!@#$&()\\-`.+,\]{8,20})$

用于添加特殊字符,但是现在它也可以用于数字,但是我希望至少有一个数字。谁能帮我设置这个?

1 个答案:

答案 0 :(得分:1)

您可以为号码的存在添加另一个超前断言:

^(?![0-9]+$)(?![a-zA-Z]+$)(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])[-a-zA-Z0-9!@#$&()\\`.+,]{8,20}$

Loolahead (?=[^0-9]*[0-9])将断言输入中至少存在一位数字。

RegEx Demo