Java正则表达式:检测含[MSG:]的字符串并提取内容
解决方案
正则表达式
直接用这个正则就能实现需求:
\[MSG:(.*?)\]
细节说明
\[MSG:匹配固定的「[MSG:」片段,因为[是正则的特殊字符,所以用\转义(.*?)是非贪婪捕获组,专门提取「[MSG:」和「]」之间的内容,非贪婪模式可以避免误匹配到后面其他]之前的内容\]匹配结尾的「]」,同样用\转义特殊字符]
使用示例
针对你的目标字符串「[ABCD:defg] [MSG:information] [MSG2:hello]」:
- 匹配验证:这个正则能精准匹配到「[MSG:information]」,说明该行符合要求
- 内容提取:通过正则的捕获组(比如多数语言里的
$1或匹配结果的第1组)就能直接拿到「information」
如果需要严格检查整行是否包含该片段,可以用带通配符的版本:
.*\[MSG:(.*?)\].*
它会匹配包含目标片段的整行,提取逻辑和上面一致。
内容的提问来源于stack exchange,提问作者Nagaraja JB
相关产品推荐
相关产品推荐

