我有以下字符串
<ad nameId="\862094\"></ad>
或逗号分隔如下
<ad nameId="\862593\"></ad>,<ad nameId="\862094\"></ad>,<ad nameId="\865599\"></ad>
如何提取nameId值并存储在单个字符串中,如下所示
string extractedValues ="862094";
或者上面用逗号分隔字符串
string extractedMultipleValues ="862593,862094,865599";
这是我开始尝试但不确定的原因
string myString = "<ad nameId="\862593\"></ad>,<ad nameId="\862094\"></ad>,<ad
nameId="\865599\"></ad>";
string[] myStringArray = myString .Split(',');
foreach (string str in myStringArray )
{
xd.LoadXml(str);
chkStringVal = xd.SelectSingleNode("/ad/@nameId").Value;
}
答案 0 :(得分:2)
答案 1 :(得分:1)
试试这个;
string s = @"<ad nameId=""\862094\""></ad>";
if (!(s.Contains(",")))
{
string extractedValues = s.Substring(s.IndexOf("\\") + 1, s.LastIndexOf("\\") - s.IndexOf("\\") - 1);
}
else
{
string[] array = s.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string extractedMultipleValues = "";
for (int i = 0; i < array.Length; i++)
{
extractedMultipleValues += array[i].Substring(array[i].IndexOf("\\") + 1, array[i].LastIndexOf("\\") - array[i].IndexOf("\\") - 1) + ",";
}
Console.WriteLine(extractedMultipleValues.Substring(0, extractedMultipleValues.Length -1));
}
答案 2 :(得分:1)
已编辑:完整代码(这有点棘手)
(对不起图片,但我在编辑器中遇到标签问题,如果你愿意,我可以通过电子邮件发送代码:))
关于代码的一点解释,它取代了给定字符串中parsePattern的所有发生,因此如果给定的字符串有多个用“,”分隔的标记,则最终结果将是以“,”分隔的数字,存储在解析变量中....
希望有所帮助
答案 3 :(得分:1)
请参阅下面的代码以提取示例中的所有数字:
string value = @"<ad nameId=""\862093\""></ad>,<ad nameId=""\862094\""></ad>,<ad nameId=""\865599\""></ad>";
var matches = Regex.Matches(value, @"(\\\d*\\)", RegexOptions.RightToLeft);
foreach (Group item in matches)
{
string yourMatchNumber = item.Value;
}