1. ホーム
  2. javascript

[解決済み] Javascriptと正規表現:文字列を分割し、セパレータを維持する

2022-04-21 12:51:56

質問

ある文字列があります。

var string = "aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc"

そして、この文字列をデリミタで分割したいと思います。 <br /> の後に特殊文字が続きます。

そのために、私はこれを使っています。

string.split(/<br \/>&#?[a-zA-Z0-9]+;/g);

デリミタが失われていることを除けば、必要なものは得られています。 以下はその例です。 http://jsfiddle.net/JwrZ6/1/

デリミターを保持するにはどうすればよいですか?

どのように解決するのですか?

私も似たような、しかし少し違う問題を抱えていました。とにかく、デリミネーターをどこに置くかについて、3つの異なるシナリオの例を挙げます。

"1、2、3".split("、") == ["1", "2", "3"]
"1、2、3".split(/(、)/g) == ["1", "、", "2", "、", "3"]
"1、2、3".split(/(?=、)/g) == ["1", "、2", "、3"]
"1、2、3".split(/(?!、)/g) == ["1、", "2、", "3"]
"1、2、3".split(/(.*?、)/g) == ["", "1、", "", "2、", "3"]

警告 4は、1文字を分割する場合のみ機能します。 コナーズファン プレゼント 代替案 :

// Split a path, but keep the slashes that follow directories
var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);