我有字符串
"foo.bar#baz"
我希望得到
["foo", ".bar", "#baz"]
我尝试用
做"foo.bar#baz".match(/[^.]+/g).join(' .').match(/[^#]+/g).join(' #').split(' ');
但我认为这太长了。你知道更短的版本吗?
PS:
我不想
["foo", "bar", "baz"]
我能用
做什么"foo.bar#baz".match(/[.#]+/g);
答案 0 :(得分:0)
您可以使用正向前瞻来分割字符串,但保留分隔字符。
echo "A 10,30,50,70 20,40,60,80 +" | awk '{ split($2,a,","); split($3,b,","); for (i in a) print $1, a[i], b[i], $4; }'

正向前瞻的语法是var myString = "foo.bar#baz";
var myRegex = /(?=[\.#])/g;
console.log(myString.split(myRegex));
答案 1 :(得分:0)
输出为
[
"foo.bar#baz",
"foo",
".bar",
"#baz"
]
console.log("foo.bar#baz".match(/(.+)(\..+)(\#.+)/i));