private const string NUMERIC_REGEX = "\\W*([0-9]+)(\\W)?([0-9]*)\\W*"
我发现我正在处理的项目中使用了这个正则表达式。假设从包含货币的字符串中解析数字。
喜欢“14.22 €”=> 14.22
但是好像不支持这个。有人可以帮助我调整它以使其也可以使用特殊货币符号吗?
作为替代方案,我发现这个 ([\d,.]+) 可以很好地满足我的需要,但我不确定我是否遗漏了任何特殊情况,或者可能太笼统了。
请您参考如下方法:
您的问题的一个很好的答案是使用正则表达式:
(?:\p{Sc} ?)?([\d,.]+)(?: ?\p{Sc})?
此正则表达式只是您使用的正则表达式的扩展版本。 它所做的是检查您的号码前后的可选货币符号。
匹配货币符号的魔法是\p{Sc},如您所见here , 和一个可选的空间。
此正则表达式检查非捕获组中的货币符号,这意味着捕获组 1 将是您的号码。
有关更多说明,只需单击此答案中的正则表达式证明链接。
