3

正規表現に関するいくつかのチュートリアルを読み、次の文を見ました。

(?<=exp): プレフィックス exp に続く任意の位置に一致

たとえば、いくつかの文字列があります。

シェア

お手入れ

「are」を含むすべての文字列を検索したい場合、「are」は「Sh」の後に続く必要があります/(?<=Sh)are/i。現在、「Share」のみが一致し、一致するインデックスは 2 です (「Share」から「Share」ではなく、「are」に一致します)。

しかし、Javascript にはこの正規表現がありません。Javascriptでどうすればそれを行うことができますか?

ありがとう!

4

4 に答える 4

3

あなたはそれをすることはできません。Javascript の正規表現の実装には後読みアサーションはありません。

代替案

  • 場合によっては、代わりにグループ化を使用して、実際に一致させたいものをキャプチャできます。/Sh(are)/i

  • 本当に後読みが必要な場合は、サードパーティの正規表現ライブラリを使用できます。

関連している

于 2012-10-04T12:27:41.847 に答える
2

唯一の方法(そしてもちろん、これは正規表現に先読みアサーションがない場合にのみ機能します)は、文字列を逆にして、先読みの代わりに先読みを使用することです。

/era(?=hS)/i
于 2012-10-04T12:39:52.210 に答える
0

非キャプチャ グループを使用できます

/(?:sh)(are)/

これは、グループareをキャプチャせずに見つけるように正規表現に指示します。shただし、このコンテキストでは、一致する単純なパターンがあるため、これは必要なく、他のソリューションで答えを見つけて、次のようなことを行うことができます

/sh(are)/

最初のグループのみに一致

于 2012-10-04T12:27:57.477 に答える
0

私がよく理解していれば、この正規表現を使用します

/(Sh|\b)(are)/gi

whereareは、単一の単語または で始まる部分文字列のみにすることができますSh

于 2012-10-04T12:28:27.813 に答える