正则表达式:用'和'分割列表句子。作为最后一个分离器(a,b,c和d。)

时间:2016-05-17 01:52:01

标签: regex

我有一堆明文字符串,我需要转换为csv-ish语法,这样a, b, c and d.变成"a","b","c","d"。我使用此正则表达式的方式有90%:/(.+?), /g(此处显示为示例:http://regexr.com/3de7o)。但是,我不能让它也为“' d”做同样的事情。变量;在and之后和.之前捕捉任何内容。

编辑:为了澄清,需要拆分的东西通常是多个单词,例如: This phrase, another phrase and last phrase. - > "This phrase","another phrase","last phrase"

1 个答案:

答案 0 :(得分:2)

你可以这样做:

(?:\sand)?(?:\s)?([^,.]+)
  • (?:\sand)?匹配空格后面的零或一次,后跟and;这将解决最后一个问题

  • (?:\s)?匹配所需模式前的零个或一个空格

  • 以上两个被放入非捕获组

  • 在已捕获的群组([^,.]+)中,我们会获得所需的模式,即下一个,.(最后一个)的任何字符。

正如@Amadan所建议的那样,当你想要替换时,捕获逗号以及留下最后一个.

(?:\sand)?(?:\s)?([^,.]+)(?:(,)|.)

现在在替换中,您可以使用:

"$1"$2

Demo