我要求在字符串中允许的标点符号列表中输入用户输入,然后匹配字符串以显示这些标点符号。
例如:用户输入“@#$%^&”。需要验证:
此外,这需要多语言安全。
谢谢, Regex初学者
加了:
我正在使用的语言是c#。需要将它放在MVC Model属性的数据注释中。
我确实能够过滤正则表达式,只允许使用标点符号:“^(?![0-9])(?![a-zA-Z])\ p {P} + $”< / p>
然而,我无法让正则表达式找到重复的标点符号。
答案 0 :(得分:0)
如果我理解你的问题。使用正则表达式[.,:;']
。如果您要匹配其他标点符号,请在方括号中列出它们。
答案 1 :(得分:0)
到目前为止,您没有指定语言,我在PHP中实现了示例:
$s = 'hello %wo$rl@@d';
$r = '~([@#\$%\^&]).*?(?=\1)~';
if (preg_match_all($r, $s, $m)) {
// password is invalid
}
如果允许的标点符号中的一个在输入$ s的剩余部分重复,则满足条件。