私たちは文字列を持っています
string strScope = "This site is used for business group. [Title]Business Group[/Title][URL]http://google.com[\URL]";
C# では、上記の文字列からタイトルと URL からビジネス グループを取得する方法を説明します。
正規表現をテストするための優れたリソースはRegexrです。
\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[\\URL\]
上記はあなたが投稿したものと一致します。URLに「/」を使用するつもりだったと思いますが、これは次のように一致します
\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[/URL\]
コード例 (実際に [\URL] が必要であると仮定します)
string strScope = "This site is used for business group. [Title]Business Group[/Title][URL]http://google.com[\URL]";
var match = Regex.Match( strScope, @"\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[\\URL\]");
if ( match.Groups.Count >= 2)
{
string name = match.Groups[0].Value;
string url = match.Groups[1].Value;
}
より従来の [/URL] が必要な場合は、明らかに他の正規表現を使用してください。
この正規表現を使用します。
\[(?<tag>[^\]]+)](?<value>.*?)\[/\k<tag>]
グループtag
はタグ名と一致します。あなたの場合:Title
、URL
。
グループvalue
はこのタグの値と一致します。
私はあなたの入力が次のとおりだと思います:
[Title]Business Group[/Title][URL]http://google.com[/URL]
結果:
var rx = new Regex(@"\[(?<tag>[^\]]+)](?<value>.*?)\[/\k<tag>]");
var txt = "This site is used for business group. [Title]Business Group[/Title [URL]http://google.com[/URL]";
var m = rx.Matches(txt);
foreach (Match match in m)
{
Console.WriteLine("{0} {1}", match.Groups["tag"].Value, match.Groups["value"].Value);
}
次の表現を試してください。
@"\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[/URL\]"
最初のキャプチャ グループは次のようになり"Business Group"
ます。2 番目のものには URL が含まれます。
var rx = new Regex(@"\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[/URL\]");
var txt = "This site is used for business group. [Title]Business Group[/Title][URL]http://google.com[/URL]";
var m = rx.Match(txt);
Console.WriteLine(m.Groups[1]);
Console.WriteLine(m.Groups[2]);
これは印刷します
Business Group
http://google.com