2016-11-18 31 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

相關問題