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

Regular expression. The regex fails when prohibited characters are on second line

我有以下正则表达式。

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

问题是当在第二行输入以下文本时,正则表达式没有将“&#”捕获为不允许的字符。 Regex 在一行中找不到与输入 in 的匹配项。 &# 的组合是不允许的。 但是,如果输入如下所示,即 &# 在第二行 的组合 不允许使用 &#。

会允许的。尽管禁止字符“&#”仍在输入中。 如果这些字符在 secode 行上,则不确定正则表达式需要进行哪些调整。

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

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

匹配所有 space 个字符 \s 和所有 none-space 个字符 \S。这意味着如果您使用以下字符 class [\s\S],您可以匹配每个字符。

圆满成功