我尝试在http://www.regex101.com/quiz/解决测验并且遇到了剩余的六项任务。
在逗号分隔的列表中,反向引用所有元素。此外,一个项目可以用引号括起来,在内部引号中,反斜杠可以转义一个字符。必须修剪每个元素周围的空间。示例:
one,"item two" , "item \"three\"" , "and, finally, the fourth"
我目前的尝试是这个甜蜜的正则表达式:
/(?:^|\G)\s*"?((?<=")(?:\\.|[^\n"\\])*(?=")|(?<!")[^\n",]+(?<!\s))"?\s*(?:,|$)/gm
可在此处测试:http://www.regex101.com/r/mH6rB2
27个测试中的第15个失败:如果一个项目以引号开头,则应该关闭它。如果有一个具有不平衡报价的项目,那么您的模式不应与该项目相匹配,也不应与该项目相匹配。例如,您不应该匹配:
"this_item,should,not,match
我完全针对给定的字符串进行了测试( "this_item,should,not,match
)(请参阅上面的链接)并且它不匹配。什么要测试告诉我?!
答案 0 :(得分:0)
测验中有一个错误,不再需要答案,上面的正则表达式就是解决方案。