首页 > 解决方案 > 正则表达式选择双引号之间的特定字符

问题描述

我想使用正则表达式提取;位于引号( )之间的特定字符。"


字符串示例:

Lorem;ipsum;"dolor;sit;";amet;


应该选择每一个;引号:

Lorem;ipsum;"dolor ;sit ;";amet;


我试过这个,但它不起作用

(?<=\")(;)*(?=\")

任何想法 ?先感谢您

标签: javascriptregex

解决方案


您必须分两步完成:

  1. 选择引号之间的每个部分:/"[^"]+"/gm
  2. 在这些匹配中,搜索;

您应该能够使用String.prototype.replace给定的正则表达式并查找“;” 在您的替换回调中。

这是一个演示:

function escapeCsvDelimiter(input) {
  return input.replace(/"[^"]+"/gm, (match) => match.replace(/;/g, '\\;'));
}

const test = 'Lorem;ipsum;"dolor;sit;";amet;"jhv;"';
const result = escapeCsvDelimiter(test);

console.log(result);


推荐阅读