gpt4 book ai didi

正则表达式仅允许字母和某些字符

转载 作者:行者123 更新时间:2023-12-04 05:14:58 27 4
gpt4 key购买 nike

我正在尝试创建仅允许大写或小写字母以及空格,'-',','。','('和')'的正则表达式。这是我到目前为止的内容,但是由于某种原因,它仍然允许我输入数字

^[a-zA-Z -,.()]*$

任何帮助将是巨大的!谢谢。

最佳答案

-在字符类中是特殊的。与a-z一样,它用于定义范围。

要匹配文字-,您需要对其进行转义或将其放置为不会用作范围运算符的方式:

^[a-zA-Z \-,.()]*$
^^ escaping \

或者
^[-a-zA-Z ,.()]*$
^ placing it at the beginning.

或者
^[a-zA-Z -,.()-]*$
^ placing it at the end.

有趣的是
^[a-z-A-Z -,.()]*$
^ placing in the middle of two ranges.

在最后一种情况下, -位于 a-zA-Z之间,因为 -z周围的 A(我们要逐字对待的字符)周围的两个字符都已包含在范围内,因此再次对 -进行了字面处理。

在所有提到的方法中,建议使用转义方法,因为它使您的代码更易于阅读和理解。任何看到 \的人都希望有一个转义。如果将 -放在开头(末尾)会产生问题,如果稍后您在字符类中的前面(之后)添加一个字符而又不转义 -从而形成一个范围。

关于正则表达式仅允许字母和某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com