2017-11-09 14 views
-5

この([^|]+$)は、スラッシュ "|"の後の最後の文字列を抽出します。特定の商品を引き出すために何を使用すればよいですか?ここで

は私の例です:

https://regex101.com/r/kG5pN6/7

私はフルテキストを$ 1しようとしたが、それを出力します。置換するフィールドに置き換える置換の値Test

+1

"|"スラッシュではありません。 regex101はC#ではなく、PCREは異なる置換文字を使用します。これを考えてみましょう:https://regex101.com/r/kG5pN6/8 – NetMage

+1

['s.Substring(s.LastIndexOf( '|')+1)'](https://ideone.com/E426RQ)を使ってください。 –

+0

今後、あなたのコードをテキストとしてあなたの質問に貼り付けてください。フィドルも素晴らしいですが、コードはページの右側に表示され、このサイトで正しくホスティングされるべきです。 –

答えて

0

肯定的な視点を使用すると、これはかなり効率的になります。 C#ので

var ans = Regex.Replace(str, @"(?<=\|)([^|]+)$", @"{$1}"); 
0

スラッシュは、正規表現の中の特殊文字である、あなたは、通常の文字としてそれらを使用する特殊文字をエスケープする必要があります。 JavaScriptで

\|+([^|]+$) 

あなたの例のようになります。:

"https://mediatemple.net||Test".match(/\|*([^|]+$)/) 
// Array [ "||Test", "Test" ] 

しかし、このような簡単な作業であなたは次の正規表現を使用することができ、文字列内のスラッシュの最後に出現するが、後に任意の末尾の文字を抽出するために 過度の正規表現を使用する必要はなく、アプリケーションのパフォーマンスに影響する可能性があります。 通常の文字列操作で十分です。

var s = "https://mediatemple.net||Test", 
    i = s.lastIndexOf("|"), 
    m = i !== -1 ? s.substr(i+1) : null; 
console.log(m); // Test 
+0

ブラケット式でバーをエスケープする必要はありません(実際にはそうしてはいけません)。 – iBug

+0

@iBug:正しい!改訂されました、ありがとうございます。 –