这里我有以下字符串,
"#,##0.00"
"\"$\"#,##0.0000"
我需要使用正则表达式进行拆分。
我的预期输出是
"#,##0.00" => 2 (decimal)
"\"$\"#,##0.0000" => $4(4 decimal with $)
如何转换,请以任何方式建议。
由于
答案 0 :(得分:2)
您可以使用以下正则表达式:
^(?:"([^"]+)")?.*?(0+)$
模式匹配:
^
- 字符串开头(?:"([^"]+)")?
- 1或0个序列:
"
- 双引号([^"]+)
- 第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 demo