2016-12-04 30 views
-1

JavaScriptで(?=regex)(?:regex)の違いは何ですか?(?=正規表現)VS(?:正規表現)

例で説明してください。

+4

「[正規表現での特殊文字の意味]」(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#)の説明と例がそれぞれMDNによって提供されています。特別なキャラクタ_メーリング_イン_レギュラー_表現) –

+1

http://www.rexegg.com/regex-disambiguation.html#lookarounds –

+1

また、スタックオーバーフローのドキュメントをRegex - [キャプチャグループ](https://stackoverflow.com/documentation/regex/660/capture-グループ)、[LookaheadとLookbehind](https://stackoverflow.com/documentation/regex/639/lookahead-and-lookbehind) –

答えて

7

(?=regex)は肯定的な先読みであり、メインの式の後のグループと一致しますが、結果には含まれません。
例:

\d(?=px) 
1pt 2px 3em 4px 

これはのみ24、全体ではなく2px4pxと一致します。

(?:regex)は、非キャプチャグループです。キャプチャグループを作成せずに複数のトークンをまとめてグループ化します。
例:

(?:ha)+ 
hahaha haa hah! 

これは、各ha一致し、それ用のグループを作成しません。

+1

あなたがstelarに感謝し、あなたは否定的な投票の代わりに私を助けなければなりません。 – Ehsan