假设我有以下正则表达式,最后匹配一个带分号的字符串:
\".+\";
它将匹配除空字符串之外的任何字符串,如下所示:
"";
我试过用这个:
\".+?\";
但那没用。
我的问题是,我如何制作可选的.+
部分,以便用户不必在字符串中添加任何字符?
答案 0 :(得分:5)
要使.+
成为可选项,您可以执行以下操作:
\"(?:.+)?\";
(?:..)
被称为non-capturing group。它只进行匹配操作,不会捕获任何东西。在非捕获组之后添加?
使整个非捕获组可选。
或者,您可以这样做:
\".*?\";
.*
会贪婪地匹配任何字符零次或多次。在?
强制正则表达式引擎执行尽可能短的匹配后添加*
。
答案 1 :(得分:0)
这里是密码的正则表达式,至少需要 8 个字符,包括数字、大小写字母和可选的特殊字符
/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?![~@#\$%\^&\*_\-\+=`|{}:;!\.\?\"()\[\]]).{8,25})/