如何让负面展望成为可选项

How to make a negative look ahead optional

我想要一个允许的正则表达式:

及格(好):

dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZdddbGF0ZT0xJnVybD1odHRwFadsjasdJGJTJGcGluZ29tZXRlci5jb20=

dHlwZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0xJnVASdfjhksdwJTNBJTJGJTJGcGluZ29tZXRlci5jb20="

未通过(差)- 末尾的 = 应该是可选的:

dHlwZT11JmFjY291bnQ9asdfasdfjnYW1wYWlnG0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0x

未及格(良好):

dHlw=ZT1jJmFjY291bnQ9MSZjYW1wYWlnbj0xJnByb3NwZWN0PTEmd29ya2Zsb3c9MSZ0ZW1wbGF0ZT0=xJnVybD1asdfasdfsadfwJTNBJTJGJTJGcGluZ29tZXRlci5jb20=3D

这是我目前的情况:

正则表达式:

([\w]+)=(?!\w)

演示:

http://rubular.com/r/JgPKSaJIri

类似

([\w]+)=?(?=\W$)

所做的更改

  • 除了\w(即\W

  • ,我们可以对任何其他事物使用正向前瞻
  • 添加 $ 以将正则表达式锚定在字符串的末尾。

Regex Demo

你可以这样试试:

^\w+=?\b\W*$

如果您打算验证 base64 输入,则问题中的规范未指定,并且不允许包含 +/(或其他字符,depending on the context)的有效 base64 输入).

您可能想使用 strict_decode64 or urlsafe_decode64 来尝试解码字符串并在字符串指定不正确时捕获异常(使用哪一个完全取决于您的用例)。这两个函数都不喜欢行分隔符,因此您需要在解码前将它们从编码字符串中剥离。