正则表达式:重复字符的最后一次出现

标签 regex regex-group

所以,我正在寻找一个正则表达式,它能够匹配字符串中每个最大非空​​辅音子串后跟一个最大非空​​元音子串

例如在以下字符串中,您可以看到所有预期的匹配项:

"zcdbadaerfe" = {"zcdba", "dae", "rfe"}

"foubsyudba" = {"fou", "bsyu", "dba"}

我很亲近!这是我到目前为止想出的正则表达式:

([^aeiou].*?[aeiou])+

它返回预期的匹配,除了它只返回任何重复长度的元音中的第一个,例如:

String: "cccaaabbee"

Expected Matches: {"cccaaa", "bbee"}

Actual Matches: {"ccca", "bbe"}

我想弄清楚如何在 (a) 常量或 (b) 字符串结尾之前包含最后找到的元音字符。

谢谢! :-)

最佳答案

您的图案略有偏差。我建议使用这个版本:

[b-df-hj-np-tv-z]+[aeiou]+

这个模式表示匹配:

  • [b-df-hj-np-tv-z]+ 一个小写非元音字母,一次或多次
  • [aeiou]+ 后跟小写元音,一次或多次

这是一个有效的 demo .

关于正则表达式:重复字符的最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73994104/

相关文章:

javascript - Livecycle RegExp - 小数的问题

regex - 在Apache NiFi中使用Grok进行模式匹配

java - 正则表达式查找包含数字的行,以文本开头,但从出现的地方删除文本

java - 使用正则表达式捕获预期结果

javascript - 在一组中匹配量化单词字符多次

java - 如何使用正则表达式重新排列方法访问修饰符

python - 用于在 python 中检索文本范围的正则表达式

java - 正则表达式来查看字符串是否包含模式

javascript - 将正则表达式字符串替换为相同的内容,并在其周围添加一个 span 标记

java - 正则表达式java来屏蔽