我有关于正则表达式的问题,我有一个文本,它看起来如下:
car,model,serie
,Mercedes,324,1,
,BMW,23423,1,
,OPEL,54322,1,
应该看起来像:
car,model,serie
Mercedes,324,1,
BMW,23423,1,
OPEL,54322,1,
所以在文本开头没有逗号。
我尝试了什么:
var str2 = str.replace(/\n|\r/g, "");
但不知何故,我无法在正则表达式中添加逗号。
谁能帮助我吗? 提前谢谢。答案 0 :(得分:1)
对这个问题有很多回应,对于正则表达式的新手,它可能有点过度镶嵌,
var str2 = str.replace(/^,/gm, '');
这可以通过使用 ^ 来检查第一个字符是否为逗号,如果是,则删除它。它还使用 g 和 m 标志为每行的第一个字符执行此操作。
1:
var str2 = str.replace(/^,+/gm, '');
这是一个轻微的变体,因为它会删除每行开头的多个连续逗号,但是根据您的数据集,这不是必需的。
2:
var str2 = str.replace(/\n,/g, '\n');
此版本的工作原理与第一版完全相同,但是它会在每个换行符后面跟一个逗号 \ n ,并将其替换为另一个换行符。
3:
var str2 = str.replace(/(\n|\r),/g, '$1')
此版本与之前的版本相同,但它没有假设换行符是 \ n ,而是捕获任何换行符或回车符,它的工作原理与< strong> m 标志和 ^,。
4:
var str2 = str.replace(/\n+|\r+|,+/g,"\n")
最后有这个,这是所有以前的正则表达式的组合,它假设您可能有很多混合的换行符和逗号没有任何文本,并且您想要删除所有这些字符,它对你的例子来说是不必要的。
答案 1 :(得分:1)
尝试:
var str2 = str.replace(/(\n|\r),/g, '$1')
您的逗号实际上位于正则表达式模式之外,因此您离它不远:)
答案 2 :(得分:1)
使用以下语法:
str.replace(/^,/gm, '');
答案 3 :(得分:1)