2016-08-03 60 views
1

我使用这个正则表达式正则表达式:如何匹配最后一个“”字符串‘文本部分之一,文本部分,文本的第三部分,’

/(?![""])(,)(?![""])/g 

,以配合我给出的逗号分隔字符串中的所有逗号在。。之间 ” ”。

"this is a text","text part one, text part two, text part three,","another text","more text", 

不匹配后,“三”逗号...... 感谢任何有用的提示!

+1

给定的正则表达式并没有真正做什么你描述。虽然第一个lookahead是毫无意义的,但第二个使正则表达式失败,正如所讨论的逗号后面紧接着'''。除此之外,这个问题缺乏很多细节,从使用的语言开始。 –

+1

对不起 - 我试图给出一个更精确的例子,我有一个由逗号分隔的部分的字符串版本,它包含在“”中,我想匹配所有封闭部分中的所有逗号....我正在测试regex101。 com ... https://regex101.com/r/wC5tR6/1 – Kai

+0

你是如何获得文本?因为它看起来像有一些坏的东西在那里。 –

回答

0

这可能会更好地完成一些预测,但由于我不确定你究竟是什么,我会把这些想法扔在那里。

将你的字符串加载到一个测试文件“testtxt”中,并运行一些perl单线程来玩。我用替代品来展示比赛。

为刚刚摆脱最后一个逗号的:

perl -ple 's/,(")/$1/g' testtxt 
"text part one, text part two, text part three" 

要摆脱所有逗号的引号内:

perl -ple 's/,//g' testtxt 
"text part one text part two text part three" 

若要去除一切,但字符串中的逗号:

perl -ple 's/[^,]//g' testtxt 
,,, 
0

逗号仅在单词后面出现在文本中,所以潜在的正则表达式可能是:

/\w+(,)/g 

它匹配一个到N个单词,并捕获它们后面的逗号。 可用结果在这里:https://regex101.com/r/vJ0hY5/1

0

您可以使用正则表达式为:/\w+(,)(?=\")/g

上述正则表达式得到'前面加word和随后"

Demo and Explaination

相关问题