gpt4 book ai didi

java - 基本实现的正则表达式模式匹配行为

转载 作者:行者123 更新时间:2023-11-30 02:47:19 26 4
gpt4 key购买 nike

我正在尝试使用正则表达式计算给定单词中的音节数。我引用了一些有关堆栈溢出的其他帖子,但在运行程序时出现了奇怪的行为。

这是我正在尝试的

int n=0;
Pattern p = Pattern.compile("[aeiouy]+[^$e]");
Matcher m = p.matcher("Harry");

while(m.find()) {
n++;
}

System.out.println(n);

现在,它打印出 1。但是字符串中同时存在“a”和“y”。我哪里出错了?

最佳答案

在字符串末尾没有更多的字母可以匹配,因此删除表达式[^$e]

Pattern p = Pattern.compile("[aeiouy]+");

虽然来自您的comment您似乎想将 e 视为特殊情况。你可以这样做

Pattern p = Pattern.compile("[aiouy]|(?!^)e(?<!$)");

关于java - 基本实现的正则表达式模式匹配行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808342/

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