正则表达式:拆分一个列表句子,'and'作为最后一个拆分器(a、b、c 和 d.)



我有一堆明文字符串需要转换为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"

你可以做:

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

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

  • 以上两个放在非捕获组中

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


正如@Amadan所建议的,当您要替换时,请捕获逗号,同时保留最后一个.

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

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

"$1"$2

演示

相关内容

  • 没有找到相关文章

最新更新