ケースは次のとおりです。
var stringExample = "hello=goodbye==hello";
var parts = stringExample.split("=");
出力:
hello,goodbye,,hello
この出力が必要です:
hello,goodbye==hello
連続した/繰り返される文字は無視する必要があります"="
。分割するには単一の文字を使用してください。
多分いくつかの正規表現?
ケースは次のとおりです。
var stringExample = "hello=goodbye==hello";
var parts = stringExample.split("=");
出力:
hello,goodbye,,hello
この出力が必要です:
hello,goodbye==hello
連続した/繰り返される文字は無視する必要があります"="
。分割するには単一の文字を使用してください。
多分いくつかの正規表現?
正規表現を使用できます:
var parts = stringExample.split(/\b=\b/);
\b
単語の境界をチェックします。
おそらく、@dystroysの答えはあなたが探しているものです。ただし、英数字( A-Z
、、、または)以外の文字が「分割」を囲む可能性がある場合、彼のソリューションは機能しません。たとえば、文字列a-z
0-9
_
=
It's=risqué=to=use =Unicode!=See?
に分割されます
"It's", "risqué=to", "use Unicode!=See?"
したがって、それを回避する必要がある場合は、通常、後読みアサーションを使用します。
result = subject.split(/(?<!=)=(?!=)/); // but that doesn't work in JavaScript!
したがって、これは単一のsでのみ分割されますが、JavaScriptは後読みアサーション=
をサポートしていないため、使用できません。(?<!...)
幸い、区切り文字間で許可されているすべてのものを照合することで、split()
操作をグローバル操作にいつでも変換できます。match()
result = subject.match(/(?:={2,}|[^=])*/g);
あなたに与える
"It's", "risqué", "to", "use ", "Unicode!", "See?"
考えられる解決策の最初の近似として、次のようになります。
".*[^=]=[^=].*"
これは単なる正規表現であることに注意してください。egrep、sed、java regexなどで使用する場合は、何かをエスケープする必要がある場合は注意してください。
注意!:これは最初の概算であり、改善される可能性があります。たとえば、この正規表現はこの文字列 "="(null-equal-null)とは一致しないことに注意してください。