2016-11-18 34 views
0

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

我尝试/[BCDFGHJKLMNPQRSTVWXZ]y[BCDFGHJKLMNPQRSTVWXZ]/gi模式。但它不是在'tyrypyr'捕捉中间y(只查找'tyr''pyr'

如果表达式添加*/[BCDFGHJKLMNPQRSTVWXZ]*y[BCDFGHJKLMNPQRSTVWXZ]/gi,但在tyraypyra后正确匹配y

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

+0

什么是正则表达式?我猜JavaScript? –

+0

MS SQL中的c#库,我想 – Andrey

+0

为什么会有'/ gi'呢? –

回答

1

随着lookarounds

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

看到它在行动here

这工作时,你的正则表达式不会因为超前是不转发您的匹配指针,而你的正则表达式是下次使用辅音0宽度匹配。

+0

非常感谢你! – Andrey

1

你需要positive Lookahead and Lookbehind

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

Here

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

+0

哇,太棒了,谢谢! – Andrey

+0

我不同意,使用负向lookaheads/lookbehinds会匹配字符串开头和结尾的'y'字符。 – Phylogenesis

+0

@Phylogenesis hu?不,它不会。请参阅此[regex101](https://regex101.com/r/nihd4Y/2) – Aaron

相关问题