2016-07-05 13 views
-1

JavaScriptでincludesendsWith関数をシミュレートする正規表現をいくつか書くことを試みています。私は文字列( "ted")を持っています。その文字列が含まれているか、正規表現を使用している他の文字列の最後にあるかどうかを確認したい。文字列正規表現 - includesとendsWith

これまでに見たことがない\bの例をいくつか見ました。これにより、私がRegExに何か情報を見つけることができなかったことがいくつか強化されているかどうか疑問に思っていました。

+0

'/テッド/'と '/テッド$ /'と 'Array.prototype.some'にマッチしますか? –

+3

私は人々がdownvoteときにコメントを追加したいと思います。基本的には、あなたがこれまでに試したことを示し、人々はコードを書くだけでなく、もっと喜んで助けてくれるでしょう。 – SoluableNonagon

+0

さて、もっと情報が必要です。「他の文字列」はどういう意味ですか?あなたは "ted"文字列を使ってループを介して他の文字列を一つずつ検索することができませんでしたか?その場合、式の末尾に\ g正規表現が必要だと思います(gはグローバルを表します)。検索する文字列内のすべての文字列を検索します。 –

答えて

0

説明

(?:(?=(?:(for)$)?)(for)) 

Regular expression visualization

**単に右この正規表現は、次の操作を実行します画像をクリックすると新しいウィンドウで

をビューを選択し、良好な画像を表示するには:

  • simulate包含および終了スクロール機能
  • ストリングにサブストリングforが含まれている場合、キャプチャー・グループ2が取り込まれます。
  • 文字列の末尾がforの場合、キャプチャグループ1にデータが入力されます。

注:JavaScriptで

  • あなたがマッチの文字位置を返すように試合の.INDEXプロパティを使用し、その後、一致を実行することができます。
  • これは正規表現ですので、部分文字列がbeforeのような他の単語の中にある場合、部分文字列forも一致しますが、これはこの現在の質問の範囲外と思われます。

ライブデモ

https://regex101.com/r/bO5vO3/1

サンプルテキスト

Are these the droids for we for are looking for? These are not the droids you are looking for 

Match:    ^1^ ^2^    ^3^           ^4^ 

positioを示す第2ラインnsは説明の目的でここに手動で挿入されたものであり、実際のサンプルテキストの一部と見なすべきではありません。

サンプル

MATCH 1 
2. `for` 

MATCH 2 
2. `for` 

MATCH 3 
2. `for` 

MATCH 4 
1. `for` 
2. `for` 

説明

NODE      EXPLANATION 
---------------------------------------------------------------------- 
    [\$]      any character of: '\$' 
---------------------------------------------------------------------- 
    this-translate   'this-translate' 
---------------------------------------------------------------------- 
    [(]      any character of: '(' 
---------------------------------------------------------------------- 
    '      '\'' 
---------------------------------------------------------------------- 
    (      group and capture to \1: 
---------------------------------------------------------------------- 
    (?:      group, but do not capture (0 or more 
          times (matching the most amount 
          possible)): 
---------------------------------------------------------------------- 
     [^'\\]     any character except: ''', '\\' 
---------------------------------------------------------------------- 
    |      OR 
---------------------------------------------------------------------- 
     \\      '\' 
---------------------------------------------------------------------- 
     .      any character except \n 
---------------------------------------------------------------------- 
    |      OR 
---------------------------------------------------------------------- 
     ''      '\'\'' 
---------------------------------------------------------------------- 
    )*      end of grouping 
---------------------------------------------------------------------- 
)      end of \1 
---------------------------------------------------------------------- 
    '      '\'' 
---------------------------------------------------------------------- 
    [)]      any character of: ')' 
---------------------------------------------------------------------- 
    ;      ';' 
----------------------------------------------------------------------