拆分正则表达式转义分隔符

Javascript Split regex escaped delimiter

本文关键字:分隔符 转义 正则表达式 拆分      更新时间:2023-09-26

仅当分隔符未转义时,我才尝试拆分值。

我读了很多关于StackOverflow的问题,但是没有一个适合我。

我有这个值:

 InvalidMsg(this,'error with this caracter '', please change your value.');

这里的关键字是:''

我想要得到错误信息,所以我尝试这样做:

var str = "InvalidMsg(this,'error with this caracter '', please change your value.');";
matches = str.match(/([^']|''')+/g);
alert(matches[1]); //error with this caracter

我需要得到完整的信息…

完整的信息是:

 error with this caracter ', please change your value

任何想法?

谢谢

下面的regex应该可以为您捕获从''的字符串,忽略所有转义引号:

/'((?:[^'']*''')*[^']*)'/

在线正则表达式演示

尝试下面的regex并使用非捕获组

查找匹配组的结果
(.*)(?:,')(.*)''('.*)(?:'');)

在线演示输入:

InvalidMsg(this,'error with this caracter '', please change your value.');

  1. InvalidMsg(this
  2. error with this caracter
  3. ', please change your value.

示例代码:

var re = /(.*)(?:,')(.*)''('.*)(?:'');)/g;
var str = 'InvalidMsg(this,''error with this caracter '', please change your value.'');';
var subst = '$2$3';
var result = str.replace(re, subst);
输出:

error with this caracter ', please change your value.