2016-09-02 5 views
2

のサブ文字列を解析するために、私は次の文字列があります:私は/例から始まり、abc.txtのようなファイル名で終わるすべてのURLを一覧表示するには上記の文字列を解析しようとしています正規表現はURL

function init() { 

      $.get("/example/abc/include.txt", function(script) { 
       code goes here 
      }); 
      $.get("<http>://abc.com/example/abc/dontinclude.txt", function (script) { 
       code goes here 
       } 
      }); 
     } 

を。

ので、目的のリストは以下のようになります。私は上記の変更

/example/abc/include.txt 
/example/abc/dontinclude.txt 

:以下のように

(\/)[^\s\/]?(example\/)(\w+\/)*(\w+.\w{3,4}) 

しかし、リストの2つのURL: /example/abc/include.txt

私は、次の正規表現を試してみました正規表現:

\"(\/)[^\s\/]?(example\/)(\w+\/)*(\w+.\w{3,4})\" 

これは必須のURLを返しますが、結果から二重引用符を除外します。

任意のアイデア正規表現を使用して二重引用符を削除する方法はありますか?

ありがとうございました。

答えて

1

どのように一致する結果を読むかによって異なります。

\"((\/)[^\s\/]?(example\/)(\w+\/)*(\w+\.\w{3,4}))\" 

たり、文字が前に二重引用符であることを保証肯定後読み、使用することができます:返信用

(?<=\")(\/)[^\s\/]?(example\/)(\w+\/)*(\w+\.\w{3,4}) 
+0

感謝を あなたは二重引用符以外のすべてを囲む別のグループを使用することができます。私はC#フレーバ '(?= \")(\ /)[^ \ s \ /]?(example \ /)で同じを試しました。 \ w + \ /)*(\ w + \。\ w {3,4}) 'となります。しかし、それは動作しませんでした。 – Pabdev

+0

正のlookbehindはC#の正規表現のフレーバです。 (https://msdn.microsoft.com/de-de/library/az24scfc(v=vs.110).aspxを参照してください)。二重引用符を逃れましたか? (\ w + \。\ w {3,4}) "' @ "(?<= \" ")(\ /)[^ \ s \ /] – Yosh

+0

はい@Yoshあなたは正しいです。私は間違ったツールでそれをテストしました。今はうまくいきます。ありがとう。 – Pabdev