AWS 上 Redis 身份验证令牌的正则表达式
RegExp for Redis Auth Token on AWS
正在寻找正则表达式以在具有以下规则的 cloudformation 脚本中使用:
- 只能是可打印的 ASCII 字符。
- 长度必须至少为 16 个字符且不超过 128 个字符。
不能包含以下任何字符:“/”、“"”或“@”。
"AllowedPattern": "[0-9a-zA-Z\#$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\[\\]\^\_\{\|\}\~].{16,128}$",
上面试过了,但是JSON好像不接受。我认为 \
存在一些问题,因为这个 "AllowedPattern": "[0-9a-zA-Z].{16,128}$",
似乎有效。有帮助吗?
您应该删除量词前的 .
,否则您将使用您想要允许的字符来量化点而不是字符 class。
此外,在开头添加 ^
以确保完全应用长度限制。
此外,如果您以特殊方式编写字符范围,则可以避免转义样式的问题。你可以把模式写成
"^[0-9a-zA-Z#-.:-?\[-_{-~]{16,128}$"
它将匹配仅包含
的16到128个字符的字符串
0-9
- 位数
a-zA-Z
- ASCII 字母
#-.
- #
, $
, %
, &
, '
, (
, )
、*
、+
、,
、-
、.
:-?
- :
, ;
, <
, =
, >
, ?
\[-_
- \
, ]
, ^
, _
{-~
- {
、|
、}
。 ~
参见regex demo。
正在寻找正则表达式以在具有以下规则的 cloudformation 脚本中使用:
- 只能是可打印的 ASCII 字符。
- 长度必须至少为 16 个字符且不超过 128 个字符。
不能包含以下任何字符:“/”、“"”或“@”。
"AllowedPattern": "[0-9a-zA-Z\#$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\[\\]\^\_\{\|\}\~].{16,128}$",
上面试过了,但是JSON好像不接受。我认为 \
存在一些问题,因为这个 "AllowedPattern": "[0-9a-zA-Z].{16,128}$",
似乎有效。有帮助吗?
您应该删除量词前的 .
,否则您将使用您想要允许的字符来量化点而不是字符 class。
此外,在开头添加 ^
以确保完全应用长度限制。
此外,如果您以特殊方式编写字符范围,则可以避免转义样式的问题。你可以把模式写成
"^[0-9a-zA-Z#-.:-?\[-_{-~]{16,128}$"
它将匹配仅包含
的16到128个字符的字符串0-9
- 位数a-zA-Z
- ASCII 字母#-.
-#
,$
,%
,&
,'
,(
,)
、*
、+
、,
、-
、.
:-?
-:
,;
,<
,=
,>
,?
\[-_
-\
,]
,^
,_
{-~
-{
、|
、}
。~
参见regex demo。