我需要一个Regular Expressions来获取2个标签内的文字。
假设我想要一个包含 <data
&gt;内任何文字的数组。和</data
&gt;标签
或者“(>”和“)”标签中的任何文字。
如何使用C#中的RegEx进行此操作?
一个高级问题是:
答案 0 :(得分:4)
Perl regexp将是
$string =~ /color=rgb\((\d+),(\d+),(\d+)\)/;
@array = ($1,$2,$3);
但您可能需要更多信息。
答案 1 :(得分:3)
既然你特意提到了C#,那么我就是这样做的:#/ p>
private static readonly Regex RgbValuePattern = new Regex(@"(?<r>\d{1,3}) ?, ?(?<g>\d{1,3}) ?, ?(?<b>\d{1,3})",
RegexOptions.Compiled | RegexOptions.ExplicitCapture);
然后在......
var match = RgbValuePattern.Match(value);
if (match.Success)
{
int r = Int32.Parse(match.Groups["r"].Value, NumberFormatInfo.InvariantInfo);
int g = Int32.Parse(match.Groups["g"].Value, NumberFormatInfo.InvariantInfo);
int b = Int32.Parse(match.Groups["b"].Value, NumberFormatInfo.InvariantInfo);
return Color.FromArgb(r, g, b);
}
答案 2 :(得分:1)
这个类似的问题有答案可以提供帮助:
答案 3 :(得分:1)
使用Regex解析XML通常是一个非常糟糕的主意。请参阅this answer。
答案 4 :(得分:0)
我相信当你想要解析嵌套结构时会出现真正的问题。例如,当您想要像这样检查XML时
<data><data>123</data><data>456</data></data>
要提取最外层<data>
标记中包含的数据,仅使用一个RegEx是不够的。只是警告你不要使用RegEx,其中存在更多(强大和特定)方法。在XML上执行更复杂的任务时,应考虑使用真正的XML解析器。我的2美分......