正则表达式 - 获取除样本之外的字符

时间:2017-07-18 10:30:51

标签: regex

我有一个字符串,里面填充了我想根据逗号分割的数据:

16588, 16503, 1, 1, N'1, 2, 3 RUE MENESTRELS', 12, 153

在这个例子中,我希望输出如下:

{16588|16503|1|1|N'1, 2, 3 RUE MENESTRELS'|12|153}

事实是,如果我根据逗号进行拆分,我会得到这样的结果:

{16588|16503|1|1|N'1|2|3 RUE MENESTRELS'|12|153}

我认为一个正则表达式可以解决这个问题,但是经过一段时间的搜索我还没有找到解决方案......(而且我必须承认我对正则表达式也不是很好)

总结一下,我想根据所有逗号分割字符串,但字符N'和字符'之间的逗号除外

我尝试使用此示例,但它不起作用

\,(?!N[^']*')

对不起,对不起,英语不是我的第一语言,请提前感谢你!

3 个答案:

答案 0 :(得分:1)

这可以帮到你:

(,)(?=(?:[^']|'[^']*')*$)

Demo

答案 1 :(得分:0)

我想你是在这之后:

(N'.*?')

在此处查看Regex101

答案 2 :(得分:0)

如果您的工具/语言允许(*FAIL)/('[^']*'(*SKIP)(*FAIL))|,/ #just 105 steps ,我的模式将提供与Egan的四分之一努力相同的结果。

xrange

Demo Link

第一个备选项匹配单引号之间的子字符串,然后丢弃它们。 这使得第二种选择正确匹配剩余/限定逗号。