正则表达式-仅在字符串的一部分中更改逗号

甘多菲

我对原始csv字符串做了很多更改。有很多逗号分隔符。我必须用“;”代替 要么只是表达式||中的逗号 .... || 或仅此表达式外的逗号。我需要进行此更改,以便在表达式|| .... ||中具有不同的定界符 与字符串的其余部分进行比较。

范例

(.*)(?:\|\|)(?:.*)(,)(?:.*)\|\|

使用后

var regex = /myregex/g;
var str = str.replace(regex, ',')

谢谢

维克多·史翠比维

您可以使用

const string = "aba,bjlj,alj,ljlj||name1,name2,name3||jflkj,glfgjlf,jflg,fjlfd||name1,name2||fd,sdfsfd,dfs||name1,name2,name3,name4,name5||";
console.log( string.replace(/\|{2}[\w\W]*?\|{2}/g, (x) => x.replace(/,/g, ';')) );

正则表达式是

/\|{2}.*?\|{2}/gs      // matches any text between two double pipes
/\|{2}[\w\W]*?\|{2}/g  // matches any text between two double pipes
/\|{2}.*?\|{2}/g       // matches any text but line breaks between two double pipes

请注意,.不带s修饰符标志的不匹配换行符

正则表达式匹配双倍字符,然后匹配零个或多个字符,直到下一个双倍字符为止尽可能少。

然后,x将整个匹配值作为参数传递给用作替换参数的匿名回调函数,并且所有逗号;仅在匹配内部被替换

“相反”的解决方案是匹配和捕获双管之间的字符串,只有在所有其他上下文匹配逗号,这样你可以保持捕获并替换那些逗号:

const string = "aba,bjlj,alj,ljlj||name1,name2,name3||jflkj,glfgjlf,jflg,fjlfd||name1,name2||fd,sdfsfd,dfs||name1,name2,name3,name4,name5||";
console.log( string.replace(/(\|{2}[\w\W]*?\|{2})|,/g, (x,y) => y || ';') );

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式选择字符串的一部分

使用正则表达式替换字符串的一部分

正则表达式匹配字符串的一部分

正则表达式不匹配字符串的一部分

用正则表达式屏蔽字符串的一部分

正则表达式匹配字符串的最后一部分

正则表达式保留字符串的一部分

使用正则表达式屏蔽字符串的一部分

正则表达式-获取字符串的一部分

正则表达式PHP字符串的一部分

正则表达式,用于捕获字符串的一部分

使用正则表达式匹配字符串的一部分

PHP正则表达式多行字符串的一部分

如何使用正则表达式在Java中处理字符串的一部分

使用正则表达式在js / jquery中获取字符串的一部分

如何获取与SQL Server中的正则表达式匹配的字符串的一部分

在python中通过正则表达式提取字符串的一部分

Java中的正则表达式获取字符串的一部分

TS / JS从正则表达式匹配中拆分字符串的一部分

在Python中仅替换正则表达式字符串的一部分的方法

php中的正则表达式删除字符串的一部分

正则表达式:更改以字符开头的行的一部分

正则表达式匹配,其中字符串的一部分不包含字符

正则表达式在一个单词后得到字符串的一部分

正则表达式在字符串的另一部分之后

python正则表达式中字符类的一部分除外

正则表达式删除字符串的一部分,然后替换另一部分

Scala:使用正则表达式提取字符串的一部分

使用正则表达式搜索,但仅用 sed 替换字符串的一部分