これは本当に簡単だと思いますが、どうすれば一致しますか
- 行頭または空白のいずれかに一致
- azにマッチ
- 行末または空白のいずれかに一致
商品番号のみ返品したいです。2 次の文字列の場合
"one 1.ignore two 2ignore ignore3 three"
式が返ってきます
["one","two","three"]
ありがとう
これは本当に簡単だと思いますが、どうすれば一致しますか
商品番号のみ返品したいです。2 次の文字列の場合
"one 1.ignore two 2ignore ignore3 three"
式が返ってきます
["one","two","three"]
ありがとう
これらの項目に一致する正規表現には後読みが必要ですが、これは JavaScript ではサポートされていません。手動で反復して一致するグループを抽出するか (@Some1.Kill.The.DJ で示されているように)、一致する代わりに文字列を分割します。
str.split(/\s+(?:\S*?(?![a-z])\S+\s+)*/);
この式は、 以外の文字を少なくとも 1 つ含む単語と組み合わされたすべての空白に一致します[a-z]
。ただし、この正規表現は複雑で保守が容易ではありません。また、空の文字列が生成されることもあります。より良い、次のようなことをしてください
str.split(/\s+/).filter(RegExp.prototype.test.bind(/^[a-z]+$/));
次のコードを使用します。
var str = 'one 1.ignore two 2ignore ignore3 three';
str = str.replace(/\s(?=[a-z])/ig, function(text, p1) {
return p1 ? p1 : text;
});
var arr = str.match(/([a-z]+)(?=\s|$)/ig);