我已经成功地使用了我的正则表达式:
/^(\+|\-|\/)*\d+?([kbmt]{1}|.\d{1,2})?$/gmi
匹配这些数字:
9
90
90.00
90.99
90k
+9
-90
+90.00
-90.99
+90k
+/-9
+/-90
+/-90.00
+/-90.99
+/-90k
但是我希望它也匹配这些:
90.00k
90.99k
-90.00k
+90.99k
+/-90.00k
+/-90.99k
如何清除需要匹配的剩余数字?
这是一个小提琴:https://regex101.com/r/jD9bH3/1
答案 0 :(得分:2)
这符合您提供的每个示例:
/^(?:[+-]|\+\/\-)?\d+(?:\.\d+)?[kbmt]?$/gim
它不匹配+++2
或+-+-+-2
或+/--/+2
等等。另外,我使用非捕获子组,其中组是必要的,因为我不相信你最关心的是自己回到零件中。
演示和解释细分:https://regex101.com/r/oP6cB4/2
答案 1 :(得分:1)
试试这个:
^(\+|\-|\/)*\d+(\.\d{1,2})?[kbmt]?$
此外,您可能希望在符号的开头更具体,因此您不匹配
之类的内容+++2
答案 2 :(得分:0)
试试这个:\+?-?\/?9{0,2}0{0,1}\.?\k?
它会获取您示例中的所有字符串,但如果您有不同的数字,可能需要进行一些调整。
使用所有数字编辑&指标标识符:\+?-?\/?\d{0,2}\d{0,1}\.?[kmbt]?