我有一种情况,我需要修剪csv中的单元格,但是我需要保留文本之间的空格,并且不应该修剪引号中的文本,而是像其他单元格一样修剪引号周围的空格。
示例:
--> first one, secondone , " third one " , fourth one
应该是
-->first one,secondone,"third one",fourth one
我遵循了这个 link,它部分地回答了我的问题,但是它也删除了单词之间的空格。我已经在此项目上做了一些工作,但没有成功。请协助解决此问题。另外,当我尝试应用链接中发布的答案(针对c#)时,我得到警告,指出并非所有浏览器都支持“负向后搜索”。是否有其他可替代的正则表达式来实现这一目标?
答案 0 :(得分:1)
您可以尝试以下正则表达式:
var a=' first one, secondone , " third one " , fourth one ';
console.log(a.replace(/\b\s*\B|\B\s*\b|\B\s*\B/g,''));//logs 'first one,secondone,"third one",fourth one'
\b
字边界\B
不是单词边界以上任何组合之间的空格都将被替换(\ b和\ b之间的空格除外)。
答案 1 :(得分:0)
假设您的目标是输出不带这些空格的CSV格式的字符串,或者从可能包含或不包含这些空格的CSV文件中读取值,那么我认为最好的解决方案是以下之一: / p>
如果您要输出CSV:
大概您有一些String集合,其中每个String可能有也可能没有前导和/或尾随空格。在这种情况下,最好的选择是遍历字符串的集合并在每个字符串上调用String.trim()
-trim()
method删除前导和尾随空格。
工作完成后,可以通过在构建String的任何代码中包含对trim()
的调用来提高效率。
如果您正在读取CSV文件:
假设您有一个表示文件中单行的字符串,并且将其拆分为,
字符以创建字符串集合。如上所述,然后可以遍历该集合,对每个String调用trim()
。