我正在尝试使用正则表达式从某些文本中以组的形式获取一些信息。
所需结果超出文本范围: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'
到目前为止,我的正则表达式是
(?<Description>.*?the (?:JVM=|)(?<JvmName>[^\s]+)(?: profile.*+|))
,我试图避免它也将“Please check the Health”作为匹配项。我怎样才能使它不会停在“健康”号上?
最佳答案
一个简单的解决方案是将Health
与其他区别,增加了该值必须包含-
的约束。
可以将[^\s]+
更改为[^\s]+-[^\s]+
来完成。
因此,结果正则表达式为:
(?<Description>.*?the (?:JVM=)?(?<JvmName>[^\s]+-[^\s]+)(?: profile.*+|))
如果
-
是无法完成的假设,则可以对数字执行相同的操作。[^\s]+\d[^\s]+