我正在为一个项目编写一个小的语言解析器,我需要用分号或换行符拆分多行字符串/文件,除非它们在引号(")内-如果可能的话-在单个regex语句中。
我尝试过以下几种组合:
split(/^([\r\n]+|[;])(?=(?:[^\"]*\"[^\"]*\")*[^\"])/);和
split(/(".*?"|[^;]|[^\r\n])(?=\s*;|\s*\r\n)/);但它们都没有很好的效果。
示例:
赋;吧;一些“物”;赋;
应产生以下数组:
Fu;Bar;一些asd;asd Fubar;
如果能帮上忙我会很感激的。
谢谢!
发布于 2017-03-18 04:09:43
此模式中的第一个捕获组是您想要(也应该)提取的内容:
(?:"[^"]*"|;|^|\n)([^"\n]+?)(?=;|"|\n)https://regex101.com/r/v2vz1Z/3
描述:
https://stackoverflow.com/questions/42866122
复制相似问题