regex - 如何在正则表达式匹配后排除最后一个单词?
问题描述
这不是 python 或 java 编程的一部分,而是 grok 模式的一部分。我有以下格式的字段传入数据
online market failure ACC20ZM::Test::BNC099
online market failure;Test;BNC099
我需要提取数据,直到第一次出现特殊字符;
或:
排除字符本身。预期的输出是online market failure
我能够得到这是使用的第二种格式,^([^:|;])+
但第一种格式online market failure ACC20ZM
将按预期返回,我试图在其中排除 ACC20ZM。
注意:该字段中的消息不是固定的,它会不断变化(包括我试图排除的单词),因此没有固定数量的单词。此外,它是以上述格式获取数据的单个字段(第一种类型或第二种类型,但不能同时使用两种类型)。我正在尝试编写一个应该能够处理这两种格式的正则表达式模式。我特别寻求帮助以使用提到的正则表达式模式排除匹配后的单词。
解决方案
你可以试试这个;
^([^:|;])+(?=(\s\w*:|;))
推荐阅读
- python - 在 Python 中在运行时附加列表
- windows - windows下如何模拟没有安装浏览器
- mongodb - Spring Boot jdbc 模板和 mongoDB
- excel - 无法将范围复制到 VBA office 2010 中的其他工作簿
- python - 当同一个id既有正值又有负值时,从id中选择正值
- bash - 我可以使用脚本连接到远程服务器和 grep 信息吗?
- wordpress - 是否有在我的古腾堡块内创建自定义块的功能?
- java - RestTemplate 将参数值转换为单例数组
- https - 我正在尝试拥有一个 HTTPS 网站,但我被困在教程步骤中
- sql-server - 在实体框架中保存时无法找到未设置的强制日期字段值