如何拆分这些正则表达式
本文关键字:正则表达式 拆分 何拆分 | 更新日期: 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演示