2

次の文字列があるとします。

Lorem #test ^%#test ipsum#test dolor #test sit #testamet.
      ^^^^^                          ^^^^^

#testマークされたインスタンスのみを選択するには、どの正規表現を使用しますか? したがって、それが別の単語の一部である場合、またはその中に他の文字が含まれている場合は、選択したくありません。

だけを検索する場合は をtest使用します/\btest\b/g\b、テキストが単語文字で始まっている場合にのみ機能するようです?

4

1 に答える 1

2

JavaScript には後読みアサーション\bがないため、正確な代替手段はありません。

ただし、前のスペース文字が一致の一部になることを気にしない場合は、次を使用できます

/(?:^|\s)#test\b/m

これ"#test"は、行の先頭にあるか" #test"、そうでない場合に一致します。

スペース以外の文字で「単語境界」を区切りたい場合は、それらを指定できます。たとえば、\w文字以外のものを受け入れたい場合は、次を使用します

/(?:^|\W)#test\b/m

で一致",#test""foo,#test,foo"ます。残念ながら、試合でコンマを取り除くことはできません。しかし、あなたが使用する場合

var match = /(?:^|\W)(#test)\b/m.exec(subject);
if (match != null) {
    result = match[1];
} 

あなたは少なくとも近いです。

于 2013-06-02T14:42:21.813 に答える