正则表达式分别提取数字和字母

时间:2019-01-03 10:48:14

标签: regex

这是新手,但是我有以下类型的数据字符串:

RT-2125.00INR / CF-MATEY

我需要提取值(2125.00)和货币代码(INR),初始部分是货币值,因此它可能有小数点,也可能没有小数点,并且长度可变,但始终为正值。

RT-(?<RateAmount>.*)/CF-

给我2125.00INR

我尝试过RT-(?<RateAmount>\d.*)/CF-RT-(?<RateAmount>[0-9].*)/CF-,但它们仍然返回相同的&RT-(?<RateAmount>[0-9]+.*?<Currency>[A-Z]+.*)/CF-只是不起作用

2 个答案:

答案 0 :(得分:0)

您可以使用

RT-(?<RateAmount>\d+(?:\.\d+)?)(?<Currency>[A-Z]+)

请参见regex demo

enter image description here

详细信息

  • RT--一个RT-文字子串
  • (?<RateAmount>\d+(?:\.\d+)?)-组“ RateAmount”:1个或多个数字(可选),后跟.和1个以上数字
  • (?<Currency>[A-Z]+)-组“货币”:1个以上大写ASCII字母。

答案 1 :(得分:0)

您需要字符类(不过我很确定有几个重复项):

RT-(?<RateAmount>[\d.]+)(?<Currency>[A-Z]+)

请参见a demo on regex101.com