我想删除第一个之后的所有内容\xe2\x80\x93
样本:
\n\nYes \xe2\x80\x93 No \xe2\x80\x93 No \xe2\x80\x93 No\nYes \xe2\x80\x93 No \xe2\x80\x93 No & No \xe2\x80\x93 No\nYes Yes \xe2\x80\x93 No & No \xe2\x80\x93 No\nYes \xe2\x80\x93 No \xe2\x80\x93 No & No \nYes \xe2\x80\x93 No\nYes \xe2\x80\x93 No \xe2\x80\x93 No\nRun Code Online (Sandbox Code Playgroud)\n\n我正在使用的正则表达式:
\n\n/(.+) (?:\xe2\x80\x93 .+)/\nRun Code Online (Sandbox Code Playgroud)\n\n匹配:
\n\n`Yes \xe2\x80\x93 No \xe2\x80\x93 No`\n`Yes \xe2\x80\x93 No \xe2\x80\x93 No & No`\n`Yes Yes \xe2\x80\x93 No & No`\n`Yes \xe2\x80\x93 No`\n`Yes`\n`Yes \xe2\x80\x93 No`\nRun Code Online (Sandbox Code Playgroud)\n\n看起来非捕获组是懒惰而不是贪婪?
\n\n我想要的结果是:
\n\n`Yes`\n`Yes`\n`Yes Yes`\n`Yes`\n`Yes`\n`Yes`\nRun Code Online (Sandbox Code Playgroud)\n
(.+?) (?:\xe2\x80\x93 .+)\nRun Code Online (Sandbox Code Playgroud)\n\n这将给出所需的结果。您的正则表达式(.+) (?:\xe2\x80\x93 .+)不正确,因为.+它将在停止之前尝试匹配尽可能多的字符,因此它将在最后停止-。相反,用.+?让它变得懒惰。
http://regex101.com/r/hS3dT7/3
\n