gpt4 book ai didi

Java 正则表达式匹配

转载 作者:行者123 更新时间:2023-11-30 11:11:39 28 4
gpt4 key购买 nike

给定这样的 Regex 代码:

Matcher m = Pattern.compile("c:.*?(|t:){1}.*?").matcher(string);

我只想匹配像 c:somesubstring|t:somesubstring 这样的东西。但是它也匹配这样的东西:

c:somesubstring

c:somesubstring|a:somesubtring

怎么会这样?我使用 (|t:){1} 来保证模式 |t: 出现并且只出现一次。将有助于告诉我我的 regex 有什么问题并给我一个 regex 以仅匹配 c:somesubstring|t:somesubstring

最佳答案

| 是正则表达式中的一个特殊元字符,其作用类似于通常用于组合两个正则表达式的逻辑 OR 运算符。您需要转义 | 符号,以便它匹配文字 | 符号。

Matcher m = Pattern.compile("c:.*?(\\|t:){1}.*?").matcher(string);

更短。

Matcher m = Pattern.compile("c:.*?\\|t:.*?").matcher(string);

关于Java 正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320857/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com