我尝试在http://www.regex101.com/quiz/上解决测验,并被困在剩下的六个任务中。
任务 #20
在逗号分隔的列表中,反向引用所有元素。此外,可以将项目括在引号中,并且在引号内,反斜杠转义字符。必须修剪每个元素周围的空间。例子:
one,"item two" , "item \"three\"" , "and, finally, the fourth"
我目前的尝试是这个甜蜜的正则表达式:
/(?:^|\G)\s*"?((?<=")(?:\\.|[^\n"\\])*(?=")|(?<!")[^\n",]+(?<!\s))"?\s*(?:,|$)/gm
可以在这里测试:http ://www.regex101.com/r/mH6rB2
这是一个问题:
测试 15 of 27 失败:如果一个项目以引用开头,则应该关闭它。如果有一个带有不平衡引号的项目,你的模式不应该匹配那个项目或者从那个点开始的任何其他内容。例如,您不应该匹配:
"this_item,should,not,match
我对给定的字符串 ( "this_item,should,not,match
) 进行了完全测试(请参阅上面的链接),但它不匹配。考试要告诉我什么?!