[英]Extract multiple values from string using C#
我正在创建自己的论坛。 我在引用消息时遇到问题。 我知道如何在文本框中添加引用消息,但是我不知道如何在发布后从字符串中提取值。 在文本框中,我有类似以下内容:
[quote IdPost=8] Some quoting text [/quote]
[quote IdPost=15] Second quoting text [/quote]
您能说出发布表单后从字符串中提取所有“ IdPost”数字的最简单方法是什么?
通过使用正则表达式
@"\[quote IdPost=(\d+)\]"
就像是
Regex reg = new Regex(@"\[quote IdPost=(\d+)\]");
foreach (Match match in reg.Matches(text))
{
...
}
我不知道您的字符串到底是什么,但是这是Substring
的无正则表达式解决方案:
using System;
public class Program
{
public static void Main()
{
string source = "[quote IdPost=8] Some quoting text [/quote]";
Console.WriteLine(ExtractNum(source, "=", "]"));
Console.WriteLine(ExtractNum2(source, "[quote IdPost="));
}
public static string ExtractNum(string source, string start, string end)
{
int index = source.IndexOf(start) + start.Length;
return source.Substring(index, source.IndexOf(end) - index);
}
// just another solution for fun
public static string ExtractNum2(string source, string junk)
{
source = source.Substring(junk.Length, source.Length - junk.Length); // erase start
return source.Remove(source.IndexOf(']')); // erase end
}
}
var originalstring = "[quote IdPost=8] Some quoting text [/quote]";
//"[quote IdPost=" and "8] Some quoting text [/quote]"
var splits = originalstring.Split('=');
if(splits.Count() == 2)
{
//"8" and "] Some quoting text [/quote]"
var splits2 = splits[1].Split(']');
int id;
if(int.TryParse(splits2[0], out id))
{
return id;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.