2
C#では、* | variablename | *というフレーズにvariablenameを取り込む必要があります。C#Regexはどのようにして* |と| *?
私はこの正規表現を持っている:|変数名| *、またはスターバー文字を含む文字列Regex regex = new Regex(@"\*\|(.*)\|\*");
オンライン正規表現テスターは、「変数名」を返しますが、C#のコードでは、*を返します。なぜ私はこの戻り値を経験しているのですか?
ありがとうございます!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace RegExTester
{
class Program
{
static void Main(string[] args)
{
String teststring = "This is a *|variablename|*";
Regex regex = new Regex(@"\*\|(.*)\|\*");
Match match = regex.Match(teststring);
Console.WriteLine(match.Value);
Console.Read();
}
}
}
//Outputs *|variablename|*, instead of variablename
おかげBoltClock!もし私が持っていれば 文字列teststring = "これは\ *可変である| \ * ok my \ * | friend | \ *"; MatchCollectionアプローチを使用する必要がありますか、そのGroupメソッドは機能しますか? –
MatchCollectionが必要です。これは 'MatchCollection matches = regex.Matches(teststring)'を意味します。コレクション内の* each *マッチの 'Group'プロパティを使用します。ただループします。 – BoltClock
素晴らしい感謝! –