说我有一些像
这样的字符串Hi my name is <Name>
Hi <name>, shall we go for a <Drink>
是否可以通过c#Regex获取标签?像<Name>, <drink>
等?
我无法做到这一点..
答案 0 :(得分:2)
不确定
Regex.Matches(myString, "<([^>]+)>");
PowerShell示例:
PS> $s = @'
>> Hi my name is <Name>
>> Hi <name>, shall we go for a <Drink>
>> '@
>>
PS> [regex]::Matches($s, '<([^>]+)>') | ft
Groups Success Captures Index Length Value
------ ------- -------- ----- ------ -----
{<Name>, Name} True {<Name>} 14 6 <Name>
{<name>, name} True {<name>} 25 6 <name>
{<Drink>, Drink} True {<Drink>} 51 7 <Drink>
答案 1 :(得分:1)
"</?[a-z][a-z0-9]*[^<>]*>"
要使用它,请尝试以下方法:
try
{
Regex regexObj = new Regex("</?[a-z][a-z0-9]*[^<>]*>", RegexOptions.IgnoreCase);
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success)
{
// Do Stuff
// matched text: matchResults.Value
// match start: matchResults.Index
// match length: matchResults.Length
matchResults = matchResults.NextMatch();
}
}
catch (ArgumentException ex)
{
// Syntax error in the regular expression
}
答案 2 :(得分:0)
为什么不做一些比使用C#的String.Replace更简单的事情?您传入要替换的字符串,并为其提供要替换它的任何值。
请参阅此处的示例:http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx