正则表达式。当禁止字符在第二行时,正则表达式失败

时间:2016-03-25 01:39:16

标签: regex regex-negation

我有以下正则表达式。

^(?!.*&#.*)[\u00e1\u00c1\u00e9\u00c9\u00ed\u00cd\u00f3\u00d3\u00fa\u00da\u00f1\u00d1\u00fc\u00dc\u00ab\u00bb\u00bf\u00a1`\w\d\s\-'.,&@:;®?!()$#/‘’*“”"]+$

问题是,当在第二行输入下面的文本时,正则表达式没有捕获"&#"作为不允许的角色。 正则表达式在一行中找不到与输入匹配的内容。 不允许&#的组合。 但是,如果输入如下,即&#;#is on second ine 的组合  &#是不允许的。

它会允许。虽然被禁止的字符"&#"仍在投入中。 如果这些字符位于第二行,则不确定要使用正则表达式进行哪些调整。

1 个答案:

答案 0 :(得分:1)

在正则表达式中,将(?!.*&#.*)替换为(?![\s\S]*&#[\s\S]*)

.匹配除新行之外的任何字符。那是你的错误。

匹配所有空格字符\s以及所有非空格字符\S。这意味着如果您使用以下字符类[\s\S],则可以匹配每个字符。

成功