我有一堆明文字符串,我需要转换为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"
答案 0 :(得分:2)
你可以这样做:
(?:\sand)?(?:\s)?([^,.]+)
(?:\sand)?
匹配空格后面的零或一次,后跟and
;这将解决最后一个问题
(?:\s)?
匹配所需模式前的零个或一个空格
以上两个被放入非捕获组
在已捕获的群组([^,.]+)
中,我们会获得所需的模式,即下一个,
或.
(最后一个)的任何字符。
正如@Amadan所建议的那样,当你想要替换时,捕获逗号以及留下最后一个.
:
(?:\sand)?(?:\s)?([^,.]+)(?:(,)|.)
现在在替换中,您可以使用:
"$1"$2