如何拆分这些正则表达式

本文关键字:正则表达式 拆分 何拆分 | 更新日期: 2023-09-27 17:59:43

这里有以下字符串,

"#,##0.00"
"'"$'"#,##0.0000"

我需要使用正则表达式进行拆分。

我的预期输出是

"#,##0.00" => 2 (decimal)
"'"$'"#,##0.0000" => $4(4 decimal with $)

如何转换?你能提出任何方法吗。

感谢

如何拆分这些正则表达式

您可以使用以下正则表达式:

^(?:"([^"]+)")?.*?(0+)$

模式匹配:

  • ^-字符串的开头
  • (?:"([^"]+)")?-1或0序列:
    • "-双引号
    • ([^"]+)-第1组捕获除"以外的1个或多个字符
    • "
  • .*?-换行符以外的任何字符,0个或更多重复
  • (0+)-第2组捕获1个或多个零
  • $-字符串末尾

这里有一个C#演示:

var pat = @"^(?:""([^""]+)"")?.*?(0+)$";
var match = Regex.Match("#.##0.00", pat);
if (match.Success) {
    Console.WriteLine(match.Groups[1].Value + match.Groups[2].Length.ToString());
} // => 2
// With "'"$'"#,##0.0000" input: $4

请参阅IDEONE演示