文字列を解析し、角かっこで囲まれたものをスキップする正規表現を作成しようとしています。
何かのようなもの
string = "A bc defg hi [hi] jkl mnop.";
.match()は「hi」を返す必要がありますが、[hi]は返しません。私はREを5時間走り抜けましたが、タオルを投げています。
また、それが重要な場合、これはjavascriptまたはjquery用です。
どんな助けでも大歓迎です。また、質問を正しくフォーマットするように取り組んでいます:)
編集:
さて、私はちょうどエウレカの瞬間を持っていて、私が使用していた元の正規表現が実際に機能したことを理解しました。しかし、私が一致を[matches]に置き換えたとき、それは単に文字列の最初の一致を置き換えました...何度も繰り返しました。これは括弧をスキップすることを拒否した私の正規表現だと思いましたが、以下のほとんどすべての解決策を何度も試した後、私はハードコアをダーピングしていることに気付きました。
.replaceがその魔法を働いていたとき、それは最初の一致であったので、次のように結果の単語の最後にスペースを追加しただけです。
var result = string.match(regex);
var modifiedResult = '[' + result[0].toString() + ']';
string.replace(result[0].toString() + ' ', modifiedResult + ' ');
これにより、文字列内の元の単語をターゲットにするのをやめ、一致するたびに新しいブラケットのセットを追加するのをやめました。よろしくお願いします。私は正しい方向に私を導いた投稿に答えのクレジットを与えるつもりです。