c正则表达式查找并提取给定长度的个数
本文关键字:正则表达式 查找 提取 | 更新日期: 2023-09-27 18:21:50
我有一个字符串,例如:
"2015年12月11日:Liefertermin 71994:2015年11月30日->2015年1月27日"
我想提取子串71994,它将始终是一个5位数的
我尝试了以下操作,但没有成功:
private string FindDispo_InInfo()
{
Regex pattern = new Regex("^[0-9]{5,5}$");
Match match = pattern.Match(textBox1.Text);
string stDispo = match.Groups[0].Value;
return stDispo;
}
用单词边界'b
替换锚点^
和$
,并使用逐字逐句的字符串文字:
Regex pattern = new Regex(@"'b[0-9]{5}'b");
您可以使用match.Value
:访问该值
string stDispo = match.Value;
固定代码:
private static string FindDispo_InInfo(string text)
{
Regex pattern = new Regex(@"'b[0-9]{5}'b");
Match match = pattern.Match(text);
if (match.Success)
return match.Value;
else
return string.Empty;
}
这里有一个C#演示:
Console.WriteLine(FindDispo_InInfo("12/11/2015: Liefertermin 71994 : 30.11.2015 -> 27.11.2015"));
// => 71994
但是,在该方法中创建regex对象可能效率低下。最好将其声明为静态私有只读字段,然后根据需要在方法内部多次使用。
您需要的是('d{5})
,它将捕获许多长度为5的