我正在尝试从10131186
中提取数字,并在没有:
和;
的情况下获取var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
。
我需要创建什么样的正则表达式?
:131186;
使用上面的代码,我得到10121186
而不是total_costs = hosting + design + phones
。
答案 0 :(得分:2)
为什么需要使用Regex。它比使用string.Replace
方法
string input = "10:131186;";
input = input.Replace(":", "");
input = input.Replace(";", "");
Console.WriteLine(input);
答案 1 :(得分:1)
您可以尝试使用Regex.Replace
:
var input = "10:131186;";
string pattern = @"(\d+):(\d+);";
string res = Regex.Replace(input, pattern, "$1$2");
Console.WriteLine(res);
您也可以Split
使用Join
:
var input = "10:131186;";
Console.WriteLine(string.Join("", input.Split (new char[] { ':', ';' }, StringSplitOptions.RemoveEmptyEntries)));
答案 2 :(得分:1)
请试试这个..
string input = "10:131186;";
input = input.Replace(":", String.Empty).Replace(";", string.Empty);
答案 3 :(得分:0)
只需打印组索引1。
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value[1]);
或使用断言。
var input = "10:131186;";
string pattern = "(?<=:).*?(?=;)";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
答案 4 :(得分:0)
您可以使用模式\\d+
来匹配字符串中的数字,并将它们连接成一个字符串。
using System;
using System.Text;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = "10:131186;";
MatchCollection mCol = Regex.Matches(input, "\\d+");
StringBuilder sb = new StringBuilder();
foreach (Match m in mCol)
{
sb.Append(m.Value);
}
Console.WriteLine(sb);
}
}
结果:
10131186