javascript - 正则表达式选择双引号之间的特定字符
问题描述
我想使用正则表达式提取;
位于引号( )之间的特定字符。"
字符串示例:
Lorem;ipsum;"dolor;sit;";amet;
应该选择每一个;
引号:
Lorem;ipsum;"dolor
;
sit;
";amet;
我试过这个,但它不起作用
(?<=\")(;)*(?=\")
任何想法 ?先感谢您
解决方案
您必须分两步完成:
- 选择引号之间的每个部分:
/"[^"]+"/gm
- 在这些匹配中,搜索
;
您应该能够使用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);
推荐阅读
- gams-math - GAMS 中的问题(错误 669、8、37、409)
- jenkins - 在 jenkins-shared-libraries 中的包内导入包
- python - sqlalchemy:另一列中每个值的最大值
- sas - SAS解析与宏中的数据步骤
- r - r - 错误:`data` 和 `reference` 应该是具有相同级别的因素
- scala - Scala替换列表中的元素对
- css - 如何使第二级列表标记与第一级列表的内容对齐
- arrays - 从数组中获取数据并应用 if 条件
- c++ - 如何在使用模板的函数调用的花括号表达式中推断多维数组的大小
- r - 用群体审美以外的因素躲避 geom_line()