我们有一个字符串
string strScope = "This site is used for business group. [Title]Business Group[/Title][URL]http://google.com[\URL]";
在C#中我们将如何从标题&来自上述字符串的网址。
答案 0 :(得分:2)
测试正则表达式的一个很好的资源是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]
,显然可以使用其他正则表达式答案 1 :(得分:1)
试试这个表达式:
@"\[Title\]([^\[]+)\[/Title\]\[URL\]([^\[]+)\[/URL\]"
第一个捕获组将是"Business Group"
;第二个将包含URL。
Here is a quick demo on ideone
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
答案 2 :(得分:1)
使用此正则表达式:
\[(?<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);
}