文字列の例を次に示します。
++++#foo+bar+baz++#yikes
そこから、または同様のシナリオからfoo
のみ抽出する必要があります。foo
+
とは#
、私が心配する必要がある唯一の文字です。
ただし、 の前にあるものに関係なく、foo
削除または無視する必要があります。それ以降の他のすべても同様に必要です。
文字列の例を次に示します。
++++#foo+bar+baz++#yikes
そこから、または同様のシナリオからfoo
のみ抽出する必要があります。foo
+
とは#
、私が心配する必要がある唯一の文字です。
ただし、 の前にあるものに関係なく、foo
削除または無視する必要があります。それ以降の他のすべても同様に必要です。
これを試して:
/\++#(\w+)/
捕獲グループ1をキャッチします。
match()
メソッドを使用するだけです。
var str = "++++#foo+bar+baz++#yikes";
var res = str.match(/\w+/g);
console.log(res[0]); // foo
console.log(res); // foo,bar,baz,yikes
または使用exec
var str = "++++#foo+bar+baz++#yikes";
var match = /(\w+)/.exec(str);
alert(match[1]); // foo
修飾子 (グローバル) を使用exec
するg
ことは、すべてのサブマッチを取得するループで使用することを意図しています。
var str = "++++#foo+bar+baz++#yikes";
var re = /\w+/g;
var match;
while (match = re.exec(str)) {
// In array form, match is now your next match..
}
foo を特定する上で、正確にどのような役割を果たしているのでしょうか+
? 後に続き、終了する#
文字列が必要な場合は、次のように簡単です。#
+
var foostring = '++++#foo+bar+baz++#yikes';
var matches = (/\#([^+]+)\+/g).exec(foostring);
if (matches.length > 1) {
// all the matches are found in elements 1 .. length - 1 of the matches array
alert('found ' + matches[1] + '!'); // alerts 'found foo!'
}
より具体的に支援するために、データの可能なバリエーションと、長さや文字が異なる場合でも抽出したいトークンを識別する方法についての情報を提供してください.
+
との任意の組み合わせが前後にあるテキストの最初のセグメントを探しているだけの場合は#
、次を使用します。
var foostring = '++++#foo+bar+baz++#yikes';
var result = foostring.match(/[^+#]+/);
// will be the single-element array, ['foo'], or null.
と同等であるため、データによっては、使用\w
が制限的すぎる場合があります[a-zA-z0-9_]
。データには、句読点、ダッシュ、括弧、または一致に含めたいその他の文字が含まれていますか? 私が提案する否定文字クラスを使用すると、 aまたは aを含まないすべてのトークンがキャッチされます。+
#