このような分離コードに XAML 文字列の一部があります
string str = "<Button Name = \"btn1\" Foo = \"Bar"\ /><TextBox Name=\"txtbox1\">"
Name属性のみの値を見つけるための正規表現は何ですか。
私が欲しい
btn1
txtbox1
どのように?
LINQ の代わりに、XPath を使用して値を取得することもできます。これにより、最初のボタンの名前が取得されます。
string str = "<Button Name = \"btn1\" /><TextBox Name=\"txtbox1\"/>";
XmlDocument doc = new XmlDocument();
doc.LoadXml("<root>" + str + "</root>");
string name = doc.SelectSingleNode("root/Button/@Name").InnerText;
または、任意のアイテムの名前属性を取得するだけの場合:
string name = doc.SelectSingleNode("root/*/@Name").InnerText;
または、すべてのアイテムのすべての名前属性のリストを取得するには:
foreach (XmlNode node in doc.SelectNodes("root/*/@Name"))
{
string name = node.InnerText';
}
等
そして、あなたは絶対にこれをしたくありませんか?
string str = "<Button Name = \"btn1\" /><TextBox Name=\"txtbox1\"/>";
var attrs = XElement.Parse("<r>"+str+"</r>").Elements().Attributes("Name").Select(a => a.Value);
foreach (var attr in attrs) Console.WriteLine(attr);
ルックアラウンドを使用できる場合は、これを試してください。
(?<=\bName\b\s*=\s*")[^"]+