2016-06-28 5 views
1

文字列の最後の文字を比較するパターンを判別しようとしていますが、 "y"(y $)です。正規表現 - 最後の最後の文字の前に文字をテストする方法

私の問題は、 "y"が母音[aeiou]よりも先であるかどうかをテストする方法です。

+0

本当に何が問題なのかわかりません。 –

+0

だから... '[aeiou] y $' –

+0

@ MathiasR.Jessen:あなたは本当ですか??? –

答えて

3

キャプチャを気にしてばかりマッチングパターンを必要としない場合は、単純に2を組み合わせる:

[aeiou]y$ 
2

私もここに別の有用なアプローチを投稿したかった - 少なくとも、知っていることは常に良いです。ポジティブ後方参照:

~(?<=[aeiou])y$~

それはイェーイ "ではなく(笑)「ぽっちゃり」などの母音+ Yで終わる文字列にマッチします。

説明:

  • ~
  • (?<=)区切り文字:ブロックの後ろに見える
  • [aeiou]:これらの母音の間で一致文字
  • y:マッチcharは文字通り
  • $
  • は:文字列の末尾にマッチ

あなたは完璧なオンラインエディタにここでそれで遊ぶことができます:https://regex101.com/r/uJ3eA8/1 :)

0

はあなたに感謝。逆の場合はどうですか? yで終わるテキストをマッチさせたいが、yは母音に先行しない?

これは動作するように見えますが、私は仕事をするための1つのテストを望んでいます。

Regex:Match(myText, "y$", RegexOptions:IgnoreCase):Success and 
    not Regex:Match(myText, "[aeiou]+.$", RegexOptions:IgnoreCase):Success 
+0

それから '〜(!<![aeiou])y $〜'を実行できます!そして、それは否定的なlookbehindになります! ;) – antoni

関連する問題