regex - 正则表达式匹配字符串的第一部分(直到第一次出现的空格字符),如果它不包含序列 ;host=
问题描述
我有这个字符串cpu.usage_system;cpu=cpu-total;host=host1 6.94024205748818 1626401140
(带有标签支持的石墨度量消息)。
我正在尝试匹配字符串的第一部分,直到第一次出现空格字符......但前提是字符串的第一部分不包含;host=
.
我可以匹配所有字符,直到第一次出现空格^([\S]+)
。我觉得我应该使用负前瞻来检查是否存在,;host=
但我不知道如何将它们放在一起。
这个想法是匹配度量标签的第一部分(&标签),看看是否包含主机标签,如果它确实包含主机标签......别管它。如果它不包含主机标签,请附加一个。
解决方案
这可能不是最优雅的解决方案,具体取决于您需要正则表达式执行的其他操作,但如果您只想排除包含 的匹配行;host=
,则此前瞻应该有效:
^(?!.*;host=)([\S]+)
推荐阅读
- excel - 创建受保护的副本时使用密码隐藏不同范围的列
- django - ckeditor - 用户友好的图像上传
- kotlin - 为 textView Kotlin 格式化长文本
- unit-testing - 没有 PrepareForTest 的 PowerMockito whenNew
- python-3.x - 如何使用正则表达式仅获取关键字附近的日期
- css - 更改 rmdformats::material 的目录深度
- windows - 过滤掉批处理文件中循环内的文本
- unity3d - Vector3 的 y 分量不匹配
- python - 如何更新networkx绘图
- c++ - 什么原因导致cfloat的INT32_MIN到size_t的类型转换溢出?