gpt4 book ai didi

Java 正则表达式 - 为什么匹配器发现额外的字符?

转载 作者:行者123 更新时间:2023-12-01 17:16:32 25 4
gpt4 key购买 nike

我正在尝试从这里提取“t”和“f”标志。所以我很惊讶地在输出中看到额外的字符。显然匹配器回溯了 - 我不明白为什么。正确的正则表达式应该是什么?

    System.out.println("searching...");
// "Sun:\\s Mon:\\s Tue:\\s Wed:\\s Thu:\\s Fri:\\s Sat:\\s "
Pattern p = Pattern.compile("[t|f]");
Matcher m = p.matcher("Sun:t Mon:f Tue:t Wed:t Thu:f Fri:t Sat:f ");
while (m.find()) {
System.out.println(m.group());
}

输出:

searching...
t
f
t
t
f
t
t
f

最佳答案

Sat 中有一个 t。尝试使用 ":([tf])" 代替。

Pattern p = Pattern.compile(":([tf])");
Matcher m = p.matcher("Sun:t Mon:f Tue:t Wed:t Thu:f Fri:t Sat:f ");
while (m.find()) {
System.out.println(m.group(1));
}

关于Java 正则表达式 - 为什么匹配器发现额外的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21735131/

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