我对 RegEx 相当陌生,并在网上进行了搜索,但无法找到符合我要求的正则表达式。
最终目标是搜索一串文本并提取最低的货币金额,但是由于该字符串可能包含不止一个金额,那么我很高兴正则表达式只提取它可以找到的所有货币值,然后我可以编写一个计算以返回最低金额。
该字符串可能包含不是货币价值/大量金额的数字,因此正则表达式应始终首先查找 £ 符号,或者它可以以“p”或“P”结尾来表示便士。例如,“我需要其中 2 个,每个 10 英镑,其中一个 50 便士” - 应该返回 10.00 和 0.50 - 然后我可以计算出 0.50 是最低金额。
由于人们也以各种方式写出他们的数量,我需要正则表达式能够发现不同的模式 - 包括“,”每千。以下所有值都应有效:
£0
£0.00
£0.00p
£0000
£0000.00
£0000.00p
£0,000
£0,000.00
£0,000.00p
0p
希望有人能够建议最好的方法来解决这个问题。
谢谢
这适用于您的数据集:
(?=^£|.*p$)£?\d*(?:,\d{3})*(\.\d{2})?p?
但它也可能不正确地匹配某些边缘情况,因为一切都是可选的......
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句