正则表达式至少有一个字母表,不应该允许点(.)

Uda*_*ade 4 regex regex-negation regular-language

我在下面写了正则表达式,但我遇到了一个问题:

^[^\.]*[a-zA-Z]+$
Run Code Online (Sandbox Code Playgroud)

按照上面的正则表达式,df45543是无效的,但我想允许这样的字符串.只有一个字母字符是必填字符,不允许使用点.允许所有其他字符.

Wik*_*żew 5

只需将数字添加为允许的字符:

^[^\.]*[a-zA-Z0-9]+$
Run Code Online (Sandbox Code Playgroud)

演示

如果你需要禁止点,并允许至少1个英文字母,那么使用前瞻:

^(?!.*\.)(?=.*[a-zA-Z]).+$
Run Code Online (Sandbox Code Playgroud)

(?!.*\.)不允许字符串中的点,并且(?=.*[a-zA-Z])至少需要一个英文字母.

另一个演示

另一种情况是仅在开始时不允许点.然后,使用

^(?!\.)(?=.*[a-zA-Z]).+$
Run Code Online (Sandbox Code Playgroud)