我正在尝试使用正则表达式从某些文本中以组的形式获取一些信息。
所需结果超出文本范围:Please check the Health of the JVM=acq855SW1-srv1 Please check the acq855SW1-srv2 profile.It seems like down以获取

  • 第一场比赛:描述为“请检查
    JVM = acq855SW1-srv1'和JVM'acq855SW1-srv1'
  • 第2个匹配项:描述为“请检查acq855SW1-srv2配置文件。看起来像关闭了”和JVM'acq855SW1-srv2'

  • 到目前为止,我的正则表达式是(?<Description>.*?the (?:JVM=|)(?<JvmName>[^\s]+)(?: profile.*+|)),我试图避免它也将“Please check the Health”作为匹配项。

    regex - 正则表达式可选替代搜索-LMLPHP

    我怎样才能使它不会停在“健康”号上?

    最佳答案

    一个简单的解决方案是将Health与其他区别,增加了该值必须包含-的约束。

    可以将[^\s]+更改为[^\s]+-[^\s]+来完成。

    因此,结果正则表达式为:

    (?<Description>.*?the (?:JVM=)?(?<JvmName>[^\s]+-[^\s]+)(?: profile.*+|))
    

    regex - 正则表达式可选替代搜索-LMLPHP

    如果-是无法完成的假设,则可以对数字执行相同的操作。
    [^\s]+\d[^\s]+

    09-25 17:43