正则表达式-仅在输入不包含所有字母时匹配

问题描述

我知道如果包含所有字母的正则表达式用于匹配,则它是^[a-zA-Z]+$,因此我认为对这个正则表达式的否定将是答案,并尝试了^(?!^[a-zA-Z])+$,但似乎不起作用。 / p>

为了提供一些上下文,我正在使用SurveyJS表单创建器创建一个基本表单,该表单创建器仅通过正则表达式接受自定义验证。某种形式的输入应允许用户输入任何内容,并且仅当用户仅填写字母时才抛出错误

解决方法

您可以使用

^(?![a-zA-Z]+$).*

否定的前瞻确保整个行不仅包含a-zA-Z,直到$(行尾-这就是为什么它包含在内部内部-而不是其外部)的原因),然后.*将匹配任何通过否定超前查询的内容。

演示:https://regex101.com/r/QuC2SQ/1