6

在这里,我有示例 javascipt 字符串:

example_string = "Answer 1| Answer 2| Answer 3|";

我正在尝试使用正则表达式获得这样的数组:

Array ["Answer 1", " Answer 2", " Answer 3"]

我努力了:

result = example_string.split('/[|]+/g');

还有以下模式

'/[|]+/g'
'/[|]+\b/g'
'/[|]+[^$]/g'

而且我仍然在它的末尾得到一个带有空元素的数组:

 Array ["Answer 1", " Answer 2", " Answer 3", ""]

这给我带来了很多麻烦。有谁知道我的模式在哪里出错或如何解决?

4

2 回答 2

8

我一直喜欢匹配我一直讨厌拆分的所有内容,但是:

用于拆分的正则表达式:(\|(?!$)) DEMO

匹配而不是拆分:

正则表达式:(?:([\w\s]+)\|?)

您甚至可以使用[^\|]+To match what you have to match BUT|

演示

于 2012-11-07T11:28:06.980 回答
3

没有错误。这是绝对正确的行为(如何split知道这不是最后一列具有空值的 CSV 文件?)。如果你知道你的字符串总是以 结尾|,你可以先手动删除最后一个。或者,如果数组为空,您可以只取走数组的最后一个元素。但是,我似乎找不到(在 JavaScript 中)告诉内置split函数忽略空结果的可能性。

于 2012-11-07T11:28:02.653 回答