正規表現を使用して文字列の一部を抽出するのにJavascriptを使用しています。時々、彼らはそれらのスペースを持つことができ、各タイプの複数が存在することができる - 私は、さまざまな文字で始まる単語を引き出すしようとしています空白を許可して正規表現を次の特殊文字に一致させる
lorem ipsum !bang #hash #hash2 ^caret word @at sym
:
は、私のような文字列があります。私の現在の正規表現は/ ([!#^@>\/*-]\w+)/gm
ある
text: "lorem ipsum"
!: "bang"
#: ["hash", "hash2"]
^: "caret word"
@: "at sym"
:だから私は、次のような値のセットにこの文字列を変換したいです。この種の作品はスペースにマッチしません。上のサンプルからは、ではなく、^
のcaret
が生成されます。
これを行うには私のコードは次のとおりです。
var result = {};
var re =/([!#^@>\/*-]\w+)/gm;
var m;
var firstSpecialCharIndex = inputString.search(/ [!#^@>\/*-]/);
result["text"] = inputString.substring(0, firstSpecialCharIndex);
while ((m = re.exec(inputString)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
var index = m[1].substring(0,1);
if(result[index] == null)
result[index] = [];
result[index].push(m[1].substring(1));
}
誰もが、私は次の特殊文字にそれの後に複数の単語(ただし、スペースの間にスペースを含む次の特殊文字に一致する方法を知っています)?多くのおかげで
ありがとうございます、これはうまくいった答えです。複数の単語/数字/特殊文字で完璧に動作します。ありがとう!! – samiles