10

I have a String that I'm trying to turn into a list but I get empty entries.

",A,B,C,D, ,,,"
returns
[, A, B, C, D,  , , ,]

I want to remove all "empty" commas:

[A, B, C, D]

I'm trying

current.split(",+\\s?")

which does not produce the result I want. What regex should I use instead?

4

4 に答える 4

3

次のいくつかの空白を一致に含めるだけでなく、連続するコンマもそれらを 1 つの単位として分割する必要があります。

(,\s*)+
current.split("(?:,\\s*)+")
于 2013-03-07T20:27:17.097 に答える
2

これには Guava で Splitterを使用します。

Splitter.on(',').omitEmptyStrings().trimResults().split(",A,B,C,D, ,,,");

これは正規表現よりも読みやすいと思うからです。

于 2013-03-07T20:31:08.930 に答える
0

コンマとスペース以外の文字に一致させると、よりクリーンなソリューションになる可能性があります

/[^, ]+/g

",A,B,C,D, ,,,".match(/[^, ]+/g)
// → ["A", "B", "C", "D"]

Javascript で作業している場合は、Lodash_.wordsメソッドを使用することもできます (上記の正規表現を称賛します)。

https://lodash.com/docs#words

_.words('fred, barney, & pebbles', /[^, ]+/g);
// → ['fred', 'barney', '&', 'pebbles']
于 2015-10-29T15:44:57.010 に答える