gpt4 book ai didi

java - 模式仅查找组中正则表达式的一个字符

转载 作者:行者123 更新时间:2023-12-02 04:14:18 25 4
gpt4 key购买 nike

我有这样编译的模式:

Pattern pattern = Pattern.compile(".*((M+)\\W*(d+)).*");

和字符串:

String string = "EEEE, MMMM d, yyyy";

matcher.group(2) 仅返回“M”,但我想获得整个“MMMM”单词。我如何使用组来做到这一点?我认为 M+ 正则表达式可以处理这种情况。提前致谢;)

最佳答案

您需要通过在 * 旁边添加 ? 来使第一个 .* 为非贪婪。注意 .* 是贪婪的,它匹配直到最后一个的所有字符。因此 .*(M+) 应仅捕获最后一个 M,因为 M 之前存在的所有字符均与 .* 匹配

Pattern pattern = Pattern.compile(".*?((M+)\\W*(d+)).*");

关于java - 模式仅查找组中正则表达式的一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471857/

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