如何让负面展望成为可选项
How to make a negative look ahead optional
我想要一个允许的正则表达式:
- 一个或多个单词字符的字符串
- ...以可选的等号结尾,前提是等号本身后跟一个非单词字符(如引号)
及格(好):
dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZdddbGF0ZT0xJnVybD1odHRwFadsjasdJGJTJGcGluZ29tZXRlci5jb20=
dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0xJnVASdfjhksdwJTNBJTJGJTJGcGluZ29tZXRlci5jb20="
未通过(差)- 末尾的 =
应该是可选的:
dHlwZT11JmFjY291bnQ9asdfasdfjnYW1wYWlnG0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0x
未及格(良好):
dHlw=ZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0=xJnVybD1asdfasdfsadfwJTNBJTJGJTJGcGluZ29tZXRlci5jb20=3D
这是我目前的情况:
正则表达式:
([\w]+)=(?!\w)
演示:
类似
([\w]+)=?(?=\W$)
所做的更改
除了\w
(即\W
)
,我们可以对任何其他事物使用正向前瞻
添加 $
以将正则表达式锚定在字符串的末尾。
你可以这样试试:
^\w+=?\b\W*$
如果您打算验证 base64 输入,则问题中的规范未指定,并且不允许包含 +
或 /
(或其他字符,depending on the context)的有效 base64 输入).
您可能想使用 strict_decode64
or urlsafe_decode64
来尝试解码字符串并在字符串指定不正确时捕获异常(使用哪一个完全取决于您的用例)。这两个函数都不喜欢行分隔符,因此您需要在解码前将它们从编码字符串中剥离。
我想要一个允许的正则表达式:
- 一个或多个单词字符的字符串
- ...以可选的等号结尾,前提是等号本身后跟一个非单词字符(如引号)
及格(好):
dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZdddbGF0ZT0xJnVybD1odHRwFadsjasdJGJTJGcGluZ29tZXRlci5jb20=
dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0xJnVASdfjhksdwJTNBJTJGJTJGcGluZ29tZXRlci5jb20="
未通过(差)- 末尾的 =
应该是可选的:
dHlwZT11JmFjY291bnQ9asdfasdfjnYW1wYWlnG0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0x
未及格(良好):
dHlw=ZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0=xJnVybD1asdfasdfsadfwJTNBJTJGJTJGcGluZ29tZXRlci5jb20=3D
这是我目前的情况:
正则表达式:
([\w]+)=(?!\w)
演示:
类似
([\w]+)=?(?=\W$)
所做的更改
除了
\w
(即\W
) ,我们可以对任何其他事物使用正向前瞻
添加
$
以将正则表达式锚定在字符串的末尾。
你可以这样试试:
^\w+=?\b\W*$
如果您打算验证 base64 输入,则问题中的规范未指定,并且不允许包含 +
或 /
(或其他字符,depending on the context)的有效 base64 输入).
您可能想使用 strict_decode64
or urlsafe_decode64
来尝试解码字符串并在字符串指定不正确时捕获异常(使用哪一个完全取决于您的用例)。这两个函数都不喜欢行分隔符,因此您需要在解码前将它们从编码字符串中剥离。