正则表达式。当禁止字符位于第二行时正则表达式失败
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]
,您可以匹配每个字符。
圆满成功
我有以下正则表达式。
^(?!.*&#.*)[\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]
,您可以匹配每个字符。
圆满成功