javascript - 使用变量空格分割字符串

标签 javascript regex split

ps 的输出可以给你这样的行:

  0.0  0.2    88 /usr/sbin/securityd

或者像这样:

 47.0  0.3  7770 node

或者甚至:

  1.0  2.5   585 /Applications/PhpStorm.app/Contents/MacOS/phpstorm

列之间的空格数量根据列的内容而变化。如果你想提取列值,我做了一个丑陋的解决方案:

line.replace('    ', ' ').replace('   ', ' ').replace('  ', ' ').split(' ');

这涵盖了从 4 个空格到 2 个空格的所有内容。如果我想支持 5 个空格,我将需要另一个替换,说实话我不喜欢这个解决方案。我当时想过解析每个字符寻找空格并累积连续的非空格字符,但我想知道是否有更好的方法,也许使用正则表达式?

最佳答案

您可以使用正则表达式 split函数匹配任意数量的空格。

var lines = line.split(/\s+/);

\s+ 正则表达式匹配一个或多个空格。


使用您提供的字符串的可运行示例:

var lines = [
  "0.0  0.2    88 /usr/sbin/securityd",
  "47.0  0.3  7770 node",
  "1.0  2.5   585 /Applications/PhpStorm.app/Contents/MacOS/phpstorm"
];
for (var i in lines)
  console.log(lines[i].split(/\s+/));

关于javascript - 使用变量空格分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474768/

相关文章:

ruby 正则表达式 : ignore quotes if a colon stands before them

r - 根据子组 R 过滤数据

java - 将数据从多个数组列表传输到多维数组

javascript - 在Vue组件中使用.scss颜色变量

javascript - 计算模拟时钟指针相对于边界框的动态长度

javascript - .less 的跨浏览器不透明度混合

regex - Vim 从位置删除字符

javascript - 为什么这个 jquery each() 循环不对唯一类进行操作

javascript - 正则表达式从字符串中检索数字

r - 在 R 中拆分不分隔的字符串和数值变量