首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript、Regex-使用换行或分号拆分多行字符串,除非在引号中

Javascript、Regex-使用换行或分号拆分多行字符串,除非在引号中
EN

Stack Overflow用户
提问于 2017-03-18 03:57:49
回答 1查看 75关注 0票数 0

我正在为一个项目编写一个小的语言解析器,我需要用分号或换行符拆分多行字符串/文件,除非它们在引号(")内-如果可能的话-在单个regex语句中。

我尝试过以下几种组合:

代码语言:javascript
复制
split(/^([\r\n]+|[;])(?=(?:[^\"]*\"[^\"]*\")*[^\"])/);

代码语言:javascript
复制
split(/(".*?"|[^;]|[^\r\n])(?=\s*;|\s*\r\n)/);

但它们都没有很好的效果。

示例:

赋;吧;一些“物”;赋;

应产生以下数组:

Fu;Bar;一些asd;asd Fubar;

如果能帮上忙我会很感激的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-18 04:09:43

此模式中的第一个捕获组是您想要(也应该)提取的内容:

代码语言:javascript
复制
(?:"[^"]*"|;|^|\n)([^"\n]+?)(?=;|"|\n)

https://regex101.com/r/v2vz1Z/3

描述:

  • find each;或任何"...“或者行的开头^
  • extract Characters^“that is not”
  • 直到find new;或者"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42866122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档