Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 带有双引号正则表达式或验证功能的电子邮件_Regex_Validation_Regex Negation_Regex Lookarounds - Fatal编程技术网

Regex 带有双引号正则表达式或验证功能的电子邮件

Regex 带有双引号正则表达式或验证功能的电子邮件,regex,validation,regex-negation,regex-lookarounds,Regex,Validation,Regex Negation,Regex Lookarounds,由于严格的要求,我在这里面临一个非常具有挑战性的正则表达式 我需要创建一个正则表达式或验证函数,使我能够: 用户将在文本字段中输入: xxxx”aaaa\”bbbbb\”ccccccc\”ddddd\”eeeeee”yyyyy”ffffff\”ggggg\”hhhh\”iiiii\”jjjj”wwww 我需要把所有的双引号字符串放在这个大字符串中,我需要把它填满。(在这种情况下: ”aaaa\”bbbbb\”ccccccc\”ddddd\”eeeeee” and ”ffffff\”gggg

由于严格的要求,我在这里面临一个非常具有挑战性的正则表达式

我需要创建一个正则表达式或验证函数,使我能够:

  • 用户将在文本字段中输入:

    xxxx”aaaa\”bbbbb\”ccccccc\”ddddd\”eeeeee”yyyyy”ffffff\”ggggg\”hhhh\”iiiii\”jjjj”wwww
    
  • 我需要把所有的双引号字符串放在这个大字符串中,我需要把它填满。(在这种情况下:

    ”aaaa\”bbbbb\”ccccccc\”ddddd\”eeeeee”
    and
    ”ffffff\”ggggg\”hhhh\”iiiii\”jjjj” ) 
    
  • 然后我需要检查是否所有引号都被正确转义,以及是否使用了一些已定义的字符

    (
      e.g. tis pattern  
    [a-zA-Z0-9!#\$%&'\*\+-/=\?\^_`\{|\}~"\(\),:;<>@\[\\\]] 
    )
    

这不是我需要的。对此有什么想法吗?

这是一个使用反向查找的好例子,您可以使用此正则表达式获取所需的内容:

”.*?(?<!\\)”
(".+?(?:[^\\]"))

然后,您可以在此字符串上应用所需的逻辑。

如果您使用的是Javascript,它不支持建议的lookbehinds,那么这就是您想要的:

”.*?(?<!\\)”
(".+?(?:[^\\]"))

说明:

  • 捕获组
    • “+?
      一个引号,后跟任意数量的字符
    • (?:
      非捕获组
      • [^\\]“
        前面没有反斜杠的引号
    • 结束非捕获组
  • 结束捕获组

你用的是什么语言?也许这一点也帮不上忙,但我确实做了一些可能对你有用的事情(有些)。这主要是我感兴趣的事情。
(".+?(?:[^\\]"))