如果之间没有数字,则发生

时间:2018-05-30 07:20:32

标签: regex

我有这样的字符串:

  

如果HP在转折开始时低于30%,则将脑部角色的攻击力提高2.75倍并且链条增加1.5倍,将脑部角色的攻击力提高2.5倍

我需要的是这样的东西:

Boosts (their )?ATK.+by 2.75x

有了这个正则表达式,我会将一个角色标记为2.75x ATK助推器。问题在于我使用这个正则表达式(找到1.5 ATK助推器):

Boosts (their )?ATK.+by 1.5x

这也匹配我的字符串,但它不应该。我尝试使用负回顾和负向前瞻,没有有用的结果。

那么,如果ATK和我想要的号码之间有一个数字,我怎么能拒绝一个匹配?

1 个答案:

答案 0 :(得分:1)

使用\D*模式而非.+仅匹配ATK1.5之间的非数字字符:

Boosts (their )?ATK\D*by 1\.5x

请参阅regex demo

注意.如果表示文字句点,则必须进行转义。