ホームページ >ウェブフロントエンド >jsチュートリアル >正規表現を使用して JavaScript で文字列を分割するときに区切り文字を保持するにはどうすればよいですか?

正規表現を使用して JavaScript で文字列を分割するときに区切り文字を保持するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-28 16:31:20441ブラウズ

How Can I Preserve Delimiters When Splitting Strings in JavaScript Using Regular Expressions?

RegExp を使用して JavaScript で文字列を分割するときに区切り文字を保持する

正規表現 (RegExp) を使用して文字列をセグメントに分割することは、JavaScript の一般的なタスクです。ただし、場合によっては、分割に使用する区切り文字を保持することが望ましい場合があります。

次の文字列について考えてみましょう。

aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc

この文字列を
で分割するとします。区切り文字の後に特殊文字 († または ‡) が続きます。次の RegExp を使用できます。

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

この RegExp は分割タスクを実行する間、
を破棄します。デリミタ。これは、特定のシナリオでは望ましくない場合があります。

以下に示すように、区切り文字を保持するには、さまざまなオプションを使用できます。

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

区切り文字を括弧で囲むことにより、区切り文字は次のようにキャプチャされます。

別のアプローチでは、正の先読みを使用します。アサーション:

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

このアサーションは、実際に区切り文字を消費せずに、区切り文字の直前の位置と一致します。

代わりに、負の後読みアサーションを使用することもできます:

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

このアサーションは、区切り文字の直後の位置と一致します。

さらに、正規表現を使用して、文字列の区切り文字より前の部分をキャプチャできます。

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

これにより、区切り文字までのすべてがキャプチャされます。

パスを扱うときは、ディレクトリのスラッシュを保持するために特別な考慮が必要です:

var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);

This RegExpディレクトリに続くスラッシュも確実にキャプチャされます。

以上が正規表現を使用して JavaScript で文字列を分割するときに区切り文字を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。