添加项目文件。
This commit is contained in:
82
ExportExcelTest/NumberMatcher.cs
Normal file
82
ExportExcelTest/NumberMatcher.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CustomOpenAddins
|
||||
{
|
||||
/// <summary>
|
||||
/// 数字匹配工具类
|
||||
/// </summary>
|
||||
public static class NumberMatcher
|
||||
{
|
||||
/// <summary>
|
||||
/// 匹配中文数字的正则表达式(零到九,包含大写)
|
||||
/// </summary>
|
||||
private const string ChineseNumberPattern = "[零一二三四五六七八九壹贰叁肆伍陆柒捌玖两]";
|
||||
|
||||
/// <summary>
|
||||
/// 匹配希腊数字的正则表达式(Ⅰ到Ⅹ)
|
||||
/// </summary>
|
||||
private const string GreekNumberPattern = "[ⅠⅡⅢⅣⅤⅥⅦⅧⅨ]";
|
||||
|
||||
/// <summary>
|
||||
/// 检查字符串是否是中文数字
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <returns>是否匹配</returns>
|
||||
public static bool IsChineseNumber(string input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input))
|
||||
return false;
|
||||
|
||||
return System.Text.RegularExpressions.Regex.IsMatch(input, $"^{ChineseNumberPattern}$");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查字符串是否是希腊数字
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <returns>是否匹配</returns>
|
||||
public static bool IsGreekNumber(string input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input))
|
||||
return false;
|
||||
|
||||
return System.Text.RegularExpressions.Regex.IsMatch(input, $"^{GreekNumberPattern}$");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从字符串中提取第一个匹配的数字(中文或希腊数字)
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <returns>匹配到的数字字符串,未匹配返回null</returns>
|
||||
public static string ExtractFirstNumber(string input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input))
|
||||
return null;
|
||||
|
||||
var pattern = $"({ChineseNumberPattern}|{GreekNumberPattern})";
|
||||
var match = System.Text.RegularExpressions.Regex.Match(input, pattern);
|
||||
|
||||
return match.Success ? match.Value : null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从字符串中提取所有匹配的数字(中文或希腊数字)
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <returns>匹配到的数字字符串集合</returns>
|
||||
public static IEnumerable<string> ExtractAllNumbers(string input)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input))
|
||||
yield break;
|
||||
|
||||
var pattern = $"({ChineseNumberPattern}|{GreekNumberPattern})";
|
||||
var matches = System.Text.RegularExpressions.Regex.Matches(input, pattern);
|
||||
|
||||
foreach (System.Text.RegularExpressions.Match match in matches)
|
||||
{
|
||||
yield return match.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user