gpt4 book ai didi

regex - OWASP 正则表达式存储库 : Is this regex correct?

转载 作者:行者123 更新时间:2023-12-04 01:14:11 24 4
gpt4 key购买 nike

我正在查看用于验证来自 ( OWASP Regex Repository) 的各种数据类型的正则表达式。

其中一个正则表达式称为 safetext,看起来像:

^[a-zA-Z0-9\s.\-]+$

我的第一个问题是:
这个正则表达式正确吗?

补充问题
这个 Regex Repository 有什么用吗?

更新
我主要对未转义的 .

感到好奇

最佳答案

链接页面中正则表达式的描述为“大小写字母和所有数字”。但是正则表达式 ^[a-zA-Z0-9\s.\-]+$也允许使用空格、句点和连字符。

正则表达式确保字符串只包含字母数字字符、空格、句点和连字符,并且字符串不为空。我不熟悉上下文,但我猜他们将其命名为 safetext 的原因可能是它不允许尖括号(同时允许在文本区域中使用通常使用的字符),从而防止脚本注入(inject)。

期间 .不是字符类中的元字符 [] .所以你不需要在方括号内转义句点。

the only special characters or metacharacters inside a character class are the closing bracket (]), the backslash (\), the caret (^) and the hyphen (-). The usual metacharacters are normal characters inside a character class, and do not need to be escaped by a backslash.

只要您将它们放在字符类的开头或结尾,大多数正则表达式风格都允许使用未转义的连字符。 [!#@-] 中的连字符是字面意思,但是 [!#-@] 中的那个不是。第一个表示四个符号之一,而第二个表示 !以及 # 的 ASCII 值之间(包括在内)的所有字符和 @ ,即 ASCII 35 到 64。

至于这个库到底好不好,我想说这是一个很好的起点。您可能希望根据您的要求修改它们。例如,他们的密码正则表达式展示了如何使用正向先行检查是否出现至少一个小写/大写/数字等。但它只允许长度在 4 到 8 之间的字符串:您可能希望允许更长的密码。

关于regex - OWASP 正则表达式存储库 : Is this regex correct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2855113/

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