asp.net C# 截取字符串中的数字
aa="字符串"字符串内容:白色¥999黑色¥888我要截取¥以后的数字至换行,或者至非数字,得到结果999,888请问如何截取?...
aa = "字符串"
字符串内容:
白色¥999
黑色¥888
我要截取¥以后的数字至换行,或者至非数字,得到结果999,888
请问如何截取? 展开
字符串内容:
白色¥999
黑色¥888
我要截取¥以后的数字至换行,或者至非数字,得到结果999,888
请问如何截取? 展开
2个回答
展开全部
使用正则表达式:¥[0-9]{1,}
调用:
using System.Text.RegularExpressions;//使用正则表达式需引用
string aa = "字符串";
//如果aa中包含\r \n这样的换行符要替换掉。
aa= aa.Replace("\n", "");
aa= aa.Replace("\r", "");
List<string> PriceList=ArrParser(aa,"¥[0-9]{1,}","[0-9]{1,}")
/// <summary>
/// 一组文字解析
/// </summary>
/// <param name="txt">要解析的内容</param>
/// <param name="pattern">解析的格式</param>
/// <param name="SplitTxt">分隔符默认为.*?</param>
/// <returns></returns>
public static List<string> ArrParser(string txt, string pattern, string SplitTxt = ".*?")
{
List<string> mylist = new List<string>();
MatchCollection mc = Regex.Matches(txt, pattern, RegexOptions.IgnoreCase);
for (int i = 0; i < mc.Count; i++)
{
string itemtxt = mc[i].ToString();
pattern = pattern.Replace(SplitTxt, "‖");
string[] list = pattern.Split('‖');
for (int j = 0; j < list.Length; j++)
{
Regex regex = new Regex(@list[j], RegexOptions.IgnoreCase);
itemtxt = regex.Replace(itemtxt, "");
}
mylist.Add(itemtxt);
}
return mylist;
}
调用未经调试,函数功能应该没问题
调用:
using System.Text.RegularExpressions;//使用正则表达式需引用
string aa = "字符串";
//如果aa中包含\r \n这样的换行符要替换掉。
aa= aa.Replace("\n", "");
aa= aa.Replace("\r", "");
List<string> PriceList=ArrParser(aa,"¥[0-9]{1,}","[0-9]{1,}")
/// <summary>
/// 一组文字解析
/// </summary>
/// <param name="txt">要解析的内容</param>
/// <param name="pattern">解析的格式</param>
/// <param name="SplitTxt">分隔符默认为.*?</param>
/// <returns></returns>
public static List<string> ArrParser(string txt, string pattern, string SplitTxt = ".*?")
{
List<string> mylist = new List<string>();
MatchCollection mc = Regex.Matches(txt, pattern, RegexOptions.IgnoreCase);
for (int i = 0; i < mc.Count; i++)
{
string itemtxt = mc[i].ToString();
pattern = pattern.Replace(SplitTxt, "‖");
string[] list = pattern.Split('‖');
for (int j = 0; j < list.Length; j++)
{
Regex regex = new Regex(@list[j], RegexOptions.IgnoreCase);
itemtxt = regex.Replace(itemtxt, "");
}
mylist.Add(itemtxt);
}
return mylist;
}
调用未经调试,函数功能应该没问题
追问
public static List ArrParser(string txt, string pattern, string SplitTxt = ".*?")
不好意思!本人菜鸟,这部分=报错的
追答
完全没有问题啊,就少打了个;而已。还有就是我的是.net 4.0不知道2.0是否不支持。
以下是测试代码
protected void Page_Load(object sender, EventArgs e)
{
string aa = "白色¥999\n\r黑色¥888";
//如果aa中包含\r \n这样的换行符要替换掉。
aa= aa.Replace("\n", "");
aa= aa.Replace("\r", "");
List PriceList = ArrParser(aa, "¥[0-9]{1,}", "[0-9]{1,}");
}
///
/// 一组文字解析
///
/// 要解析的内容
/// 解析的格式
/// 分隔符默认为.*?
///
public static List ArrParser(string txt, string pattern, string SplitTxt = ".*?")
{
List mylist = new List();
MatchCollection mc = Regex.Matches(txt, pattern, RegexOptions.IgnoreCase);
for (int i = 0; i
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询