この質問を書き始めてから、私は自分が持っているすべての質問に対する答えを理解したと思いますが、他の人に役立つかもしれないし、より明確にすることが役立つかもしれないので、とにかく投稿したいと思いました。
javascript関数splitを使用して、先読みで正規表現を使用しようとしていました。matchを呼び出したときに一致が見つかったのに、何らかの理由で文字列が分割されていませんでした。もともと、問題は正規表現で先読みを使用することによるものだと思っていました。簡単な例を次に示します。
動作しません:
"aaaaBaaaa".split("(?=B).");
作品:
"aaaaBaaaa".match("(?=B).");
問題は、分割された例では、渡された文字列が正規表現として解釈されていなかったことであると思われます。引用符の代わりにスラッシュを使用すると、問題が解決するようです。
"aaaaBaaaa".split(/(?=B)./);
私は次のばかげた見た目の例で私の理論を確認しました:
"aaaaaaaa(?=B).aaaaaaa".split("(?=B).");
分割関数が正規表現を持っていないのに、match関数が正規表現を持っていると仮定するのは奇妙だと思う人はいますか?