RegEx找到所有符号' y'辅音字母之间

时间:2016-11-18 13:32:22

标签: regex

我需要找到所有符号' y'辅音字母之间: 例如,在'tyrypyr'中,我需要在2,4和6位置找到y。 在'tyraypyr' - 2和7中,而不是5,因为a前面有y

我尝试/[BCDFGHJKLMNPQRSTVWXZ]y[BCDFGHJKLMNPQRSTVWXZ]/gi模式。但它不是y中的'tyrypyr'捕获中心(仅查找'tyr''pyr'

如果在*等表达式中添加/[BCDFGHJKLMNPQRSTVWXZ]*y[BCDFGHJKLMNPQRSTVWXZ]/gi,但在y a之后错误地匹配tyraypyr

在辅音字母之间找到符号y的正确方法是什么。并且,如果可能只有y(没有辅音字母,y而不是'tyr''pyr')。因为我想找到这个y来用其他符号替换它。

2 个答案:

答案 0 :(得分:1)

使用lookarounds

(?<=[BCDFGHJKLMNPQRSTVWXZ])y(?=[BCDFGHJKLMNPQRSTVWXZ])

在行动here中查看。

当你的正则表达式没有时,这是有效的,因为前瞻是一个0宽度的匹配,它不会转发你的匹配指针,而你的正则表达式正在消耗下一个辅音。

答案 1 :(得分:1)

您需要positive Lookahead and Lookbehind

/(?<=[BCDFGHJKLMNPQRSTVWXZ])y(?=[BCDFGHJKLMNPQRSTVWXZ])/gi

Here它是

你的比赛是3个字符长。 tyrypyr长度为7个字符,因此您最多只能找到两次。