21

Web でクエリを検索しましたが、要件に正確に一致する回答が得られませんでした。私は以下のような文字列を持っています:

A|B|C|The Steading\|Keir Allan\|Braco|E

私の出力は以下のようになります。

A
B
C
The Steading|Keir Allan|Braco
E

私の要件は、エスケープシーケンスが前にある場合、区切り文字をスキップすることです。で負の後読みを使用して、次のことを試しましたString.split()

(?<!\\)\|

しかし、私の問題は、区切り文字がエンドユーザーによって動的に定義されることであり、常にそうである必要はありません|。キーボード上の任意の文字にすることができます (制限なし)。したがって、正規表現で許可されていない特殊文字の一部では、上記の正規表現が失敗する可能性があるのではないかと思います。

これがそれを行うのに最適な方法であるかどうかを知りたかっただけです。

4

2 に答える 2