7

私は次のような文字列を持っています

A_B_C_D
A_B___C_D

___は文字列のどこにでもある可能性があります。

_ではなく単一でそれらを分割する最も簡単な方法は何___ですか?

4

1 に答える 1

8
>>> "A_B_C_D".match(/(?:[^_]|_{2,})+/g)
["A", "B", "C", "D"]

>>> "A_B___C_D".match(/(?:[^_]|_{2,})+/g)
["A", "B___C", "D"]

セパレーターを見つける代わりに、コンポーネント自体を見つけます。_文字列は、(セパレータが であるため_) ではないか、複数の である必要があることに注意してください_。したがって、それらに一致する正規表現は次のようになります。

入力が で開始または終了する場合、この正規表現は空の文字列を無視することに注意してください_(たとえば、"_a_"が返されるだけ["a"]です。)

于 2012-04-30T08:18:34.893 に答える