此处是regex101.com的链接:https://regex101.com/r/fu2JkM/1
除100 CCC or 200 DDD keyword 300 someotherword
之外的每个示例都可以正常工作:
它应该在关键字之前找到最后一个号码,后接 A或BB或CCC或DDD 。
在上面的示例中,应该找到 200个DDD关键字,因此group1 = 200 和group2 = DDD ,因为后面紧跟着关键字。它不起作用是因为在关键字之后有一些数字,但是我希望这些情况也能起作用。 有人可以帮忙吗?
编辑:
当前的正则表达式:(?:.*[^\d\n])?([0-9][0-9,.]*)(?:\s*(A|BB|CCC|DDD))?\s+keyword
预期结果的示例:
200A keyword -> 200A
200BB keyword -> 200BB
200 BB keyword -> 200 BB
100 QQQ or 200 BB keyword -> 200 BB
100 CCC or 200 DDD keyword -> 200 DDD
100 CCC or 200 DDD keyword -> 200 DD
100 CCC or 200 DDD keyword 300 someotherword -> 200 DDD
100 CCC or 200 DDD keyword someotherword -> 200 DDD
1.5 CCC keyword -> 1.5 CCC
0,25 CCC keyword -> 0,25 CCC